asp.net-mvc – RenderAction应该与表单一起使用吗?
我的设置:
>查看以下路线:/ Pages / Details / 2 我的问题: 如果存在验证错误,我应该如何返回/ Pages / Detail / 1并在评论表单中显示错误? >如果我使用RedirectToAction,似乎验证很棘手;我是否应该使用Post-Redirect-Get模式进行验证错误,而不仅仅是返回? 如果应该使用PRG模式,那么我认为我只需要学习如何在使用PRG时进行验证.如果没有 – 对我而言,返回View()似乎可以更好地处理 – 然后我不知道如何让用户返回到初始视图,显示表单错误,同时使用RenderAction. 这感觉就像你敲击你的头并同时揉肚子的游戏.我也不擅长那个.我是MVC的新手,所以这可能是问题所在. 解决方法
我相信答案是使用TempData,例如:
在我看来(/步骤/细节)我有: <!-- List comments --> <% Html.RenderAction("List","Comments",new { id = Model.Step.Id }); %> <!-- Create new comment --> <% Html.RenderAction("Create",new { id = Model.Step.Id }); %> 在我的评论控制器中,我有我的POST方法: // POST: /Comments/Create [HttpPost] public ActionResult Create([Bind(Exclude = "Id,Timestamp,ByUserId,ForUserId")]Comment commentToCreate) { if (ModelState.IsValid) { //Insert functionality here return RedirectToAction("Details","Steps",new { id = commentToCreate.StepId }); } //If validation error else { //Store modelstate from tempdata TempData.Add("ModelState",ModelState); //Redirect to action (this is hardcoded for now) return RedirectToAction("Details",new { id = commentToCreate.StepId }); } } 在评论控制器中也是我的GET方法: // // GET: /Comments/Create public ActionResult Create(int id) { if (TempData.ContainsKey("ModelState")) { ModelStateDictionary externalModelState = (ModelStateDictionary)TempData["ModelState"]; foreach (KeyValuePair<string,ModelState> valuePair in externalModelState) { ModelState.Add(valuePair.Key,valuePair.Value); } } return View(new Comment { StepId = id }); } 这对我很有用,但我很感激这是一个好习惯的反馈,等等. 另外,我注意到MvcContrib有一个ModelStateToTempData装饰,看起来这样做,但是更清洁.我接下来要尝试一下. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 回发无法使用ASP.NET路由(视图状态MAC验证失
- asp.net-mvc – 用于移动设备的displaymode,带有桌面视图,适
- asp.net-mvc – ASP.NET MVC – 如何从引用的类库中的类创建
- asp.net-mvc – 如何使用MVCSiteMap进行隐式本??地化?
- asp.net-mvc – 在ASP.NET MVC 3中使用Ajax响应发送的自定义
- bytearray图像asp.net
- asp.net – URL重写规则在Visual Studio Development Serve
- 如何使用asp.net将.docx转换为html?
- 免费开源asp.net文件管理器?
- asp.net – web.config继承:导致XML解析错误
- asp.net-mvc – ASP.NET MVC – 创建一个新模型或
- .net – Control.ResolveUrl与Control.ResolveCl
- asp.net 操作FTP作为数据中转-Helper.cs
- asp.net – 检查控制启动的AJAX请求
- asp.net-mvc – 为什么MVC会为完整视图和部分视图
- .net – 我可以创建基于非语言的全局.resx吗?
- asp.net-mvc – 如何在使用Html.BeginForm时使用
- asp.net-mvc-3 – mvc是否支持整个区域的Web.con
- razor – 使用ActionLink将null参数传递给控制器
- .net – 如何向用户发送电子邮件确认链接