一、自动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>