asp.net-mvc-3 – ModelState.AddModelError不显示在我的视图
发布时间:2020-05-23 07:58:27 所属栏目:asp.Net 来源:互联网
导读:我有以下视图,其中创建10 ajax.beginform ,,但我面临的问题是,在创建对象期间发生错误,那么ModelState.AddModelError将不会显示在视图上,虽然我已设置@ Html.ValidationSummary(true) 视图如下 @model Medical.Models.VisitLabResult@for (int item = 0;
|
我有以下视图,其中创建10 ajax.beginform,但我面临的问题是,在创建对象期间发生错误,那么ModelState.AddModelError将不会显示在视图上,虽然我已设置@ Html.ValidationSummary(true)
@model Medical.Models.VisitLabResult
@for (int item = 0; item < 10; item++)
{
<tr id = @item>
@using (Ajax.BeginForm("CreateAll","VisitLabResult",new AjaxOptions
{
HttpMethod = "Post",UpdateTargetId = item.ToString() + "td",InsertionMode = InsertionMode.Replace,LoadingElementId = "progress2",OnSuccess = string.Format(
"disableform({0})",Json.Encode(item)),}))
{
@Html.ValidationSummary(true)
@Html.AntiForgeryToken()
<td>
@Html.DropDownList("LabTestID",String.Empty)
@Html.ValidationMessageFor(model => model.LabTestID)
</td>
<td>
@Html.EditorFor(model => model.Result)
@Html.ValidationMessageFor(model => model.Result)
</td>
<td>
@Html.EditorFor(model => model.DateTaken)
@Html.ValidationMessageFor(model => model.DateTaken)
</td>
<td>
@Html.EditorFor(model => model.Comment)
@Html.ValidationMessageFor(model => model.Comment)
</td>
<td>
<input type="submit" value="Create" />
</td>
<td id = @(item.ToString() + "td")>
</td>
}
</tr>
}
</table>
而我定义ModelState.AddModelError的action方法如下: – [HttpPost]
[ValidateAntiForgeryToken]
public ActionResult CreateAll(VisitLabResult vlr,int visitid = 28)
{
try
{
if (ModelState.IsValid)
{
var v = repository.GetVisit(visitid);
if (!(v.EligableToStart(User.Identity.Name))){
return View("NotFound");
}
vlr.VisitID = visitid;
repository.AddVisitLabResult(vlr);
repository.Save();
return Content("Addedd Succsfully");
}
}
catch (DbUpdateException)
{
JsonRequestBehavior.AllowGet);
ModelState.AddModelError(string.Empty,"The Same test Type might have been already created,go back to the Visit page to see the avilalbe Lab Tests");
}
}
所以我可以在我的视图中显示ModelState.AddModelError。 解决方法我会敦促你改变你的try {} catch(){}并首先检查是否存在给定id的访问 if (visitExists)
{
ModelState.AddModelError("CustomError",go back to the Visit page to see the avilalbe Lab Tests");
return View(vlr);
}
//Other code here
将您的AddModelError更改为 ModelState.AddModelError("CustomError",go back to the Visit page to see the avilalbe Lab Tests");
在你看来简单地添加一个 @Html.ValidationMessage("CustomError")
然后当你返回你的模型时,错误会显示你放置了@ Html.ValidationMessage … (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ASP.NET 2.0 – 带有tbody / thead的DataGrid
- asp.net – 如何正确使用RegisterForEventValidation
- asp.net-mvc – 对MVC中的模型进行条件验证
- iis-7 – ASP.NET请求队列优先级
- asp.net – 检查是否在集成管道模式
- asp.net-mvc-3 – 在MVC3 Controller操作中返回文件和呈现的
- ASP.NET Core中的依赖注入(vNext)
- asp.net – 与SQL Server建立连接时出现网络相关或实例特定
- asp.net-mvc – 从视图重定向到另一个视图
- asp.net – 在自动生成的GridView列中防止HTML编码
推荐文章
站长推荐
- 实体框架 – 在每个单元测试之前重新创建和重新设
- asp.net – 运行时从Microsoft.AspNet.WebApi.He
- asp.net-mvc – 如何获取Azure网站上的错误详细信
- ASP.NET MVC中多个浏览器选项卡中的唯一会话
- asp.net – 如何解决ASP .Net中的“这是一个无效
- asp.net – 有没有比升级到Visual Studio 2010 U
- asp.net – 如果表单字段为空,如何将NULL插入数据
- 在ASP.Net应用程序中执行Server.MapPath的最有效
- asp.net-mvc – Azure服务总线队列触发器功能在运
- asp.net-mvc – 如何继承ASP.NET MVC控制器并仅更
热点阅读
