MVC的controller传model给view同时赋值有关问题
MVC的controller传model给view同时赋值问题
自学MVC,开发一个小型的论坛系统。
用户在发帖的时候,访问的是 Title/Create/{ForumID}
下面是Controller,我的想法是在新建title时将title的ForumID赋值
结果报错,在追踪时发现第二个Create Controller里,title对象的ForumID值又变为0了。
难道public ActionResult Create(Title title)接收的title不是public ActionResult Create(int id)传过去的。
如果该方法行不通的话,public ActionResult Create(Title title)如何获取当前页面Route的id值。
------解决方案--------------------
一般地说,都是在数据库里面配置一个自动增长的id,没必要这么写。
------解决方案--------------------
将id 放进一个控件中; 如: @Html.HiddenFor(x => x.ID)
自学MVC,开发一个小型的论坛系统。
用户在发帖的时候,访问的是 Title/Create/{ForumID}
下面是Controller,我的想法是在新建title时将title的ForumID赋值
- C# code
public ActionResult Create(int id) { Title title = new Title() { ForumID = id }; return View(title); }
- C# code
[AcceptVerbs(HttpVerbs.Post), Authorize] public ActionResult Create(Title title) { UserRepository userRepository = new UserRepository(); if (ModelState.IsValid) { try { title.CreateUserID = userRepository.GetUser(User.Identity.Name).aspnet_User.UserId; title.CreateTime = DateTime.Now; titleRepository.Add(title); titleRepository.Save(); return RedirectToAction("Details", new { id = title.TitleID }); } catch(Exception ex) { ModelState.AddRuleViolations(title.GetRuleViolations()); Response.Write(ex.Message); } } return View(title); }
结果报错,在追踪时发现第二个Create Controller里,title对象的ForumID值又变为0了。
难道public ActionResult Create(Title title)接收的title不是public ActionResult Create(int id)传过去的。
如果该方法行不通的话,public ActionResult Create(Title title)如何获取当前页面Route的id值。
------解决方案--------------------
一般地说,都是在数据库里面配置一个自动增长的id,没必要这么写。
------解决方案--------------------
将id 放进一个控件中; 如: @Html.HiddenFor(x => x.ID)