• 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”>

  • 相关阅读:
    Ural 2040 Palindromes and Super Abilities 2
    BZOJ3676: [Apio2014]回文串
    HDU3068 最长回文
    [USACO06DEC] Milk Patterns
    hdu 6200 mustedge mustedge mustedge(dfs序+树状数组+并查集)
    hdu 4511 小明系列故事——女友的考验(AC自动机+dp)
    hdu 5129 Yong Zheng's Death(AC自动机fail树的应用)
    poj 1991 Turning in Homework(贪心+区间dp)
    hdu 4776 Ants(trie+优先队列)
    hdu 4775 Infinite Go(并查集模拟)
  • 原文地址:https://www.cnblogs.com/Vinkong/p/12459327.html
Copyright © 2020-2023  润新知