一、隐式从ViewBag取数据
1、action中的代码:
1 ViewBag.UserName = "admin";
cshtml中的代码:
1 @Html.TextBox("UserName")
这样就会在@Html.TextBox("UserName")所在的位置显示admin了
2、action中的代码:
1 Book[] books = new Book[] 2 { 3 new Book{Id=1,Name="如鹏网"}, 4 new Book{Id=2,Name="腾讯"}, 5 new Book{Id=3,Name="天猫"} 6 } 7 8 SelectList slBooks = new SelectList(books,"Id","Name",2); 9 ViewBag.books = slBooks;
cshtml中的代码:
@Html.DropDownList("books")
这样就会在@Html.DropDownList("books")的位置替换显示为下拉列表了。
二、强类型视图绑定
Action:
1 public ActionResult Index() 2 { 3 return View(); 4 }
Model:
1 public class UserModel 2 { 3 public int Id { get; set; } 4 public string Name { get; set; } 5 }
cshtml:
@model 强类型视图绑定.Models.UserModel @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>Index</title> </head> <body> <div> @Html.Label("Id"):@Html.TextBoxFor(m => m.Id)<br /> @Html.Label("Name"):@Html.TextBoxFor(m => m.Name)<br /> </div> </body> </html>
三、数据客户端验证
建一个MVC模板的MVC项目。
Model
1 public class UserModel 2 { 3 [DisplayName("用户名")] 4 [Required] 5 [StringLength(8)] 6 public string UserName { get; set; } 7 8 [DisplayName("密码")] 9 [Required] 10 [StringLength(8)] 11 public string Password { get; set; } 12 }
Controller
1 public ActionResult Login(UserModel model) 2 { 3 if (!ModelState.IsValid) 4 { 5 return View(nameof(Index));//转到Index.cshtml页面 6 } 7 return Content(model.UserName); 8 }
cshtml:
1 @model 客户端数据验证.Models.UserModel 2 @{ 3 ViewBag.Title = "Home Page"; 4 } 5 6 @using (Html.BeginForm("Login", "Home")) 7 { 8 @Html.LabelFor(m => m.UserName, "用户名") @Html.TextBoxFor(m => m.UserName) @Html.ValidationMessageFor(m => m.UserName)<br /> 9 @Html.LabelFor(m => m.Password, "密码") @Html.TextBoxFor(m => m.Password) @Html.ValidationMessageFor(m => m.Password)<br /> 10 <input type="submit" value="提交" /> 11 }
然后在Layout.cshtml中的head头部引入
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryval")
完成以上步骤后,客户端提交表单之前就可以验证了。