zoukankan      html  css  js  c++  java
  • ASP.NET MVC 3 第一天笔记

     ASP.NET MVC 3 第一天笔记

         Asp.net mvc 应用程序的结构

    /Controllers

    保存处理url请求的controller类

    /Models

    保存表示和操纵数据以及业务对象的类

    /Views

    负责呈现输出结果(如html)的UI模板文件

    /Scripts

    保存javascript库文件和脚本

    /Content

    保存css和图像文件以及其他非动态/非javascript的内容

    /App_Data

    存储想要读取/写入的数据文件

    Asp.net mvc和约定

    1. 约定大于配置
    2. 约定简化通信

    控制器

    控制器操作中的参数

    //get:/Store/Browse?genre=?Disco

    利用实用方法HttpUtility.HtmlEncode

    (“Store.Browse,Genre=”+genre)

    注:可以阻止用户向视图注入JavaScript代码

    /Store/Browse?Genre=<script>window.location=’http://hacker.example.com’</script>

    视图

    检查由控制器提交的ViewDataDictionary(通过ViewData属性访问),另外一部分是将其内容转换成HTML格式

    Asp.net mvc 3中 ViewBag出现,动态的

    ViewData[“Message”] 相当于 ViewBag.Message

    大多情况下,不存在真正的技术优势

    差异

    1.访问的关键字是一个有效的C#标识符使,viewBag才起作用

    如果在ViewData[“Key with Spaces”]中存放一个值,那么将不能使用ViewBag访问

    1. 动态的值是不可以作为参数传给扩展方法的。因为编译器为了选择正确的扩展方法,必须知道每一个参数的真正类型

    如:@Html.TextBox(“name”ViewBag.Name)是错误的,

    使用ViewData[“Name”]或(string)ViewBag.Name

    指定视图

    Public ActionResult Index(){

    ViewBag.Message =”Hello, Vinkong”;

    Return View(“NotIndex”)

    }

    上面仍然在/Views/Home目录中查找

    需要指定完全不同的目录结构中的视图,可以使用~符号来提供完整的路径

    Return view(“~/View/Example/Index.cshtml”);

    强类型视图

    Public ActionResult List(){

    Var albums = new List<Album>();

    for(int i=0;i<10;i++){

    Albums.add(new Album(Title =”Product”+i));

    }

    ViewBag.Albums = albums;

    Return View();

    }

    视图:

    第一种方式

    @foreach(Album a in (ViewBag.Alblums as IEnumerable<Album>)){

    <li>@a.Title</li>

    }

    第二种方式简洁,但是不能使用智能提示

    @foreach(dynamic p in ViewBag.Albums){

    <li>@p.Title</li>

    }

    第三中方式,需要输入模型的完全限定名

    @model IEnumerable<MvcApplication1.models.Album>

    <ul>

    @foreach(Album p in Model){

    <li>@p.Title</li>

    }

    如果不想输入完全限定名称,可以使用@using关键字声明

    @using MvcApplication1.Models

    @model IEnumerable<Album>

    Foreach(Album p in Model){

    <li>@p.Title</li>

    }

    注:经常使用的名称空间,可以在View目录下的web.config文件声明

    <add namespace=”MvcApplication1.Models”>

  • 相关阅读:
    【hive】时间段为五分钟的统计
    【git】提交到github不显示贡献小绿点问题的解决
    【hive】关于用户留存率的计算
    【hive】求日期是星期几
    【hive】数据仓库层次设计
    【hive】count() count(if) count(distinct if) sum(if)的区别
    转载:几种 hive join 类型简介
    丑小鸭和白天鹅没有区别
    好好照顾自己,就像照顾你爱的人那样;
    灵光一闪(最近更新于2020/8/23)
  • 原文地址:https://www.cnblogs.com/Vinkong/p/12459327.html
Copyright © 2011-2022 走看看