Fork me on GitHub

ASP.net MVC入门及Razor语法

一、MVC入门:

     1、MVC简介

     约定大于配置

     2、MVC访问流程

                           

                  csthml模板(razor模板)就是简化HTML的拼接的模板,最终还是生成html给浏览器显示,不能直接访问cshtml文件。

 

二、Razor语法:

             1、 @启动的区域为标准的C#代码,其他部分是普通的html代码

             2、 用法:

                   a) @{string a="abc";}  @a @{代码块}   有标签就是html代码;

                      总结:@就是C#,<a></a> 就是html ;

                                  如果想让被识别成html的当成C#,那就用@()   

                                  如果想让被识别成C#的当成html 就用<span></span> ,如果不想生成额外的标签,就用<text></text>

                                  属性的值如果以“~/”开头会进行虚拟路径处理

                                  属性值如果是bool类型,如果是false 就不输出这个属性,如果是true就输出“属性名=属性名”   <input type="checkbox"  checked="@b1" >

 

 

三、 var 匿名类型

            /*
             class Myp
             {
                 public int Age { get; set; }
                 public string Name { get; set; }
              }
                 Myp p = new Myp();
                 p.Name = "chen";
                 p.Age = 12;
             */

            var p = new { Name = "chen", Age = 12 };

            匿名类型的属性是只读的,匿名类型是internal 类型,无法跨程序集

四、Controller 给view传递数据的方式:

    1、 ViewData :   键值对从传递数据      

        public ActionResult Index()
        {
          
            ViewData["name"] = "chen";  //键值对传递
            ViewData["age"]=12;
            return View();
        }       
    <body>
        <p>
          <!--C#方法接收-->
          @ViewData["name"]  <br />
          @ViewData["age"]   <br />
        </p>

    </body>

     2.  ViewBag:  ViewBag是dynamic类型的参数,是对ViewData一个动态类型的封装,用起来更方便和ViewData共同操作一个数据。

        public ActionResult Index()
        {
           
            ViewBag.name = "chen";
            ViewBag.age = 12;
            
            return View();
        }
    <p>
        <!--C#方法接收-->
        @ViewBag.name  <br />
        @ViewBag.age   <br />
    </p>

 

      3.   Model 

             可以在Controller 中通过 return View(model) 赋值 ,然后在cshtml中通过Model属性来访问这个对象;

             强类型视图:如果在cshtml中通过“@model”类型(注意model小写)指定类型,则cshtml中的Model就是指定的强类型,

             弱类型视图: 如果没有指定“@model”类型,则cshtml中的Model就是dynamic

             数据传递建议用 Model传递,并且建议用强类型

 

posted @ 2018-07-25 16:06  精进的小陈  阅读(1510)  评论(0编辑  收藏  举报