Questions tagged «modelstate»


3
ModelState.AddModelError-如何添加非属性错误?
我正在检查数据库,Create(FooViewModel fvm){...}以查看fvm.prop1和fvm.prop2在该组合中是否已经存在;如果是这样,我想向模型状态添加错误,然后返回整个视图。我试过了: public ActionResult Create(FooViewModel fvm){ if (ThatComboAlreadyExists(fvm)) { ModelState.AddModelError("Model", "There is already one like that"); return View(fvm); } } ...但是我没有显示中的错误Html.ValidationSummary,我认为这是错误的出现位置。我怀疑“模型”不是正确的键,但是我找不到Google那样的东西。

13
ASP.NET MVC如何将ModelState错误转换为json
您如何获得所有ModelState错误消息的列表?我找到了以下代码来获取所有键:(返回带有ModelState错误的键列表) var errorKeys = (from item in ModelState where item.Value.Errors.Any() select item.Key).ToList(); 但是,如何将错误消息显示为IList或IQueryable? 我可以去: foreach (var key in errorKeys) { string msg = ModelState[error].Errors[0].ErrorMessage; errorList.Add(msg); } 但这就是手动完成-当然有办法使用LINQ吗?.ErrorMessage属性太远了,我不知道如何编写LINQ ...


10
Asp.net MVC ModelState.Clear
谁能给我关于Asp.net MVC中ModelState角色的简要定义(或指向其中的链接)。特别是我需要知道在什么情况下有必要或希望致电ModelState.Clear()。 有点开放了吧 ...抱歉,如果告诉您我在做什么,可能会有所帮助: 我在名为“页面”的控制器上进行了“编辑”操作。当我第一次看到用于更改Page详细信息的表单时,所有内容都会正常加载(绑定到“ MyCmsPage”对象)。然后,我单击一个为MyCmsPage对象的字段之一生成值的按钮(MyCmsPage.SeoTitle)。它会很好地生成并更新对象,然后我将返回带有新修改的页面对象的操作结果,并期望相关的文本框(使用渲染<%= Html.TextBox("seoTitle", page.SeoTitle)%>)会被更新……但是,它会显示已加载的旧模型中的值。 我已经通过使用来解决它,ModelState.Clear()但是我需要知道它为什么/如何工作,所以我不仅仅是盲目地做。 PageController: [AcceptVerbs("POST")] public ActionResult Edit(MyCmsPage page, string submitButton) { // add the seoTitle to the current page object page.GenerateSeoTitle(); // why must I do this? ModelState.Clear(); // return the modified page object return View(page); } Aspx: <%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MyCmsPage>" …


10
ASP.NET MVC-如何在RedirectToAction中保留ModelState错误?
我有以下两种操作方法(简化了问题): [HttpGet] public ActionResult Create(string uniqueUri) { // get some stuff based on uniqueuri, set in ViewData. return View(); } [HttpPost] public ActionResult Create(Review review) { // validate review if (validatedOk) { return RedirectToAction("Details", new { postId = review.PostId}); } else { ModelState.AddModelError("ReviewErrors", "some error occured"); return RedirectToAction("Create", new { …

5
MVC3删除ModelState错误
我遇到了一种情况,我正在上传用户从其本地文件系统中选择的图像。在我看来,我的表单基本上有两个提交按钮。一个用于正常提交表单,然后执行所有验证。第二个仅用于上传图像,在这种情况下,我还不想验证。 我设法通过为“上传图片”提交按钮提供一个类值“样式名称取消”来关闭客户端验证,因此 <input type="submit" name="UploadImageButton" value="Upload Image" class="style-name cancel" /> 现在,当我回发时,我的模型具有属性UploadImageButton,单击此按钮时,它将填充此属性(输入的名称与该属性匹配)。这样,我知道表单是由我真正的Submit按钮还是UploadImageButton提交的。 我的问题是...如何关闭ServerSide验证?我不希望用户单击此按钮时显示“验证摘要”信息。我知道您可以使用此添加自定义模型错误 ModelState.AddModelError("{key}", "{error msg}"); 我正在寻找一种消除模型错误的方法。这可能吗? 编辑: 这是我想出的: foreach (var key in ModelState.Keys.ToList().Where(key => ModelState.ContainsKey(key))) { //ModelState.Remove(key); //This was my solution before ModelState[key].Errors.Clear(); //This is my new solution. Thanks bbak }
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.