自动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>
原文地址:https://www.cnblogs.com/fuyouchen/p/9373124.html