zoukankan      html  css  js  c++  java
  • 自动using和Layout

    一、自动using

             1、 Model  文件夹添加 Person类,在view文件夹下web.config文件,将namespace加入,cshtml文件就不需要添加@model引用;

                       

    二、layout

        1、  @RenderBody()渲染正文部分; cshtml的layout属性设置layout页面地址; @RenderSection("header")用于渲染具体页面中用  @section header{}包裹的内容,若果header是可选的,那么使用@RenderSection("footer", false),可以用IsSectionDefined("header")实现“如果没定义则显示****”的效果。

    <body>
        <div>
            @RenderSection("header")   <!--给子页面挖坑头部-->
            @RenderBody()              <!--子页面显示内容-->
            @RenderSection("footer", false) <!--给子页面挖坑底部,false表示可填可不填-->
            
            <!--如果子页面定义了"Sec1",则挖坑,没有定义则显示默认内容-->
            @if (IsSectionDefined("Sec1"))
            {
                @RenderSection("Sec1")
            }
            else
            {
                <text>这是默认的内容</text>
            }
        </div>
    </body>
    <body>
        <!--填坑头部--> 
        @section header
            {我是头部 }
        @{
            Person p1 = new Person();
        }
        <!--填坑底部--> 
        @section footer
            {我是底部 }
    
        @section Sec1
        {这个坑我来填 }
    
    </body>

         2、 可以在Views文件夹下建立一个_ViewStart.cshtml文件,在这个文件中定义Layout,这样不用每个页面都设定Layout,当然每个页面可以通过设定layout属性来覆盖默认的实现;

         3、 在子页面设置ViewBag.title内容,Layout页面用@ViewBag.title获取到

         4、 @Html.DropdownList 辅助方法          

            (1)

            public ActionResult Index()  
            {
                List<Person> list = new List<Person>();
                list.Add(new Person { Name = "chen", Age = 29, Id = 1 });
                list.Add(new Person { Name = "wang", Age = 28, Id = 2 });
                list.Add(new Person { Name = "li", Age = 24, Id = 3 });
                list.Add(new Person { Name = "liu", Age = 23, Id = 4 });
                
                return View(list);
            }
        public class Person  //类
        {
            public int Id { get; set; }
            public string Name { get; set; }
            public int Age { get; set; }
        }
    @model List<Person>
    @{
        Layout = null;
    }
    
    <!DOCTYPE html>
    
    <html>
    <head>
        <meta name="viewport" content="width=device-width" />
        <title>Index</title>
    </head>
    <body>
        <select>
            @foreach (Person p in Model)
            {
                <option selected="@(p.Id==1)"  >@p.Name</option>
            }
        </select>
    
    </body>
    </html>

        (2)使用@Html.DropDownList 显示下拉框,@Html.ListBox 用法一样

    @model IEnumerable<SelectListItem>
    @{
        Layout = null;
    }
    
    <!DOCTYPE html>
    
    <html>
    <head>
        <meta name="viewport" content="width=device-width" />
        <title>DDL1</title>
    </head>
    <body>
        @Html.DropDownList("pid",Model)
    
    
    
    </body>
    </html>
            public ActionResult DDL1()
            {
                List<Person> list = new List<Person>();
                list.Add(new Person { Name = "chen", Age = 29, Id = 1 });
                list.Add(new Person { Name = "wang", Age = 28, Id = 2 });
                list.Add(new Person { Name = "li", Age = 24, Id = 3 });
                list.Add(new Person { Name = "liu", Age = 23, Id = 4 });
    
                //方式一
                List<SelectListItem> slist = new List<SelectListItem>();
                foreach (var p in list)
                {
                    SelectListItem listItem = new SelectListItem();
                    listItem.Selected = (p.Id == 2);
                    listItem.Text = p.Name;
                    listItem.Value = p.Id.ToString();
                    slist.Add(listItem);
                }
    
                //方式二:linq
                var sList2 = from item in list
                         select new SelectListItem { Selected = item.Id == 2, Text = item.Name, Value = item.Id.ToString() };
           //方式三
            SelectList selectList = new SelectList(list, "Id", "Name");
            ViewBag.selectlist = selectList;
                //@Html.DropDownList("pid", (SelectList)ViewBag.selectlist)
    return View(slist);
            }

    三、判断是否来自Ajax请求:

            public ActionResult Ajax1()
            {
                return View();
            }
    
            public ActionResult Ajax2()
            {
                var p = new { Name = "chen", Age = 12 };
    
                if(Request.IsAjaxRequest())
                {
                    return Json(p);
                }
                else
                {
                    return Content("没有权限");
                }
            }
        <script src="~/Scripts/jquery-1.10.2.min.js"></script>
        <script type="text/javascript">
            $(function () {
                $("#btn1").click(function () {
                    $.ajax({
                        url: "/Test/Ajax2",
                        type: "post",
                        datatype: "json",
                        success: function (res) {
                            alert(res.Name);
                        },
                        error: function () {
                            alert("错误");
                        }
                    });
                });
            });
    
        </script>
  • 相关阅读:
    Linux Shell脚本编程--Head/Tail命令详解
    Python学习笔记-抽象
    L2-020 功夫传人
    pat 抢红包
    pat 集合相似度
    pat 喊山
    hdu1029
    win10 , JAVA安装 环境搭建
    ZOJ2540 Form a Square
    ZOJ3180 Number Game
  • 原文地址:https://www.cnblogs.com/fuyouchen/p/9373124.html
Copyright © 2011-2022 走看看