在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1)ViewBag ViewBag是动态类型,使用时直接添加属性赋值即可 ViewBag.myName 控制器代码: 1 public ActionResult Index() 2 { 3 ViewBag.name = "梁顺盛"; 4 ViewBag.message = "欢迎使用MVC设计模式~~"; 5 return View(); 6 } 视图代码: <div> <!--利用HtmlHelper创建TextBox时,使用名称与ViewBag中的Key一致, 就会自动实现值绑定--> @Html.TextBox("name") @ViewBag.message </div> 2)ViewData ViewData只对当前Action有效,它是一个字典集合,通过key值读取对应的value; 控制器代码: public ActionResult Index() { ViewData["name"] = "梁顺盛"; ViewData["message"] = "欢迎使用MVC设计模式~~"; return View(); } 视图代码: <div> <!--利用HtmlHelper创建TextBox时,使用名称与ViewData中的Key一致, 就会自动实现值绑定--> @Html.TextBox("name") @ViewData["message"] </div> 3)TempData 使用TempData和使用ViewData方法是一样的,但是它可用于在不同的Action之间传值,这是ViewData做不到的。 控制器代码: public class MVCController : Controller { public ActionResult Index1() { TempData["name"] = "梁顺盛"; return View(); } public ActionResult Index2() { string strName = TempData["name"].ToString() return View(); } 上面的代码中,Index()给TempData添加了一个键值对,假设我们先请求Index这个Action,接着请求Index2这个Action,那么在Index2中,我们便可以得到之前添加到TempData的键值对。有趣的是,这时如果再次请求Index2,那么从TempData中读到的MyName的值会是null。这是因为TempData和一个临时的Session差不多,当Acion执行的时候它做为一个全局对象保存的内存中,而一旦Action的执行完成,就会释放内存空间,这就是它与ViewData最大的不同之处。 4)Model Controller通过Model传值应该是MVC中使用最为普遍的一种传值方式,通过强类型绑定,在View中可以很方便的通过Model的相应属性得到想要的值。 Model代码: public partial class YzAdministratorEntity { public YzAdministratorEntity() { this.YzClearRecordEntity = new HashSet<YzClearRecordEntity>(); this.YzNotifyInfoEntity = new HashSet<YzNotifyInfoEntity>(); } public System.Guid ID { get; set; } public string AdminPassword { get; set; } public string AdminName { get; set; } public bool isUsed { get; set; } [Required(AllowEmptyStrings = false, ErrorMessage = "用户ID不能为空")] public string AdministratorID { get; set; } public string AdminLevel { get; set; } public virtual ICollection<YzClearRecordEntity> YzClearRecordEntity { get; set; } public virtual ICollection<YzNotifyInfoEntity> YzNotifyInfoEntity { get; set; } } 视图代码: 强类型绑定: @model Model.YzAdministratorEntity 通过Linq自动匹配Model和Label或TxtBox的属性值: <div> <span class="editor-label"> @Html.Label("编号:") </span> <span class="editor-field"> @Html.EditorFor(a => a.AdministratorID) @Html.ValidationMessageFor(model => model.AdministratorID) </span> </div> <div> <span class="editor-label"> @Html.Label("密码:") </span> <span class="editor-field"> @Html.EditorFor(a => a.AdminPassword ) </span> </div> <div> <span class="editor-label"> @Html.Label("真实姓名:") </span> <span class="editor-field"> @Html.EditorFor(a => a.AdminName ) </span> </div>
|
请发表评论