首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

MVC的controller传model给view同时赋值有关问题

2012-09-18 
MVC的controller传model给view同时赋值问题自学MVC,开发一个小型的论坛系统。用户在发帖的时候,访问的是Tit

MVC的controller传model给view同时赋值问题
自学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)

热点排行