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

  • 相关阅读:
    [转]Apache与Tomcat的关系
    [转]学习object-c,补习一下指针
    [转]深度解析苹果成功的六大原因——公众类产品学习的榜样
    datetimepicker日期时间选择器
    缓缓回到顶部效果的实现
    bootstrap4实现点击标签展示对应的内容
    禁止页面内容滚动( 禁用 ctrl
    UI中的暗黑模式
    如何通过空状态留住用户
    交互设计常用原则和定律
  • 原文地址:https://www.cnblogs.com/Vinkong/p/12459327.html
Copyright © 2011-2022 走看看