ASP.NET 视xVal与强类型的视图模型
-
20-09-2019 - |
题
我不能 xVal验证 工作强类型的这个例子.
每个方法在xVal似乎想要一个前缀这不是用在处理强类型的这个例子.
我认为包含码类似于这样的:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<ContactForm>" %>
<%= Html.TextBox("firstName", Model.FirstName) %>
和下面的码在控制器:
try
{
var theModel = form.ToModel();
_contactRepository.Save(theModel);
}
catch (RulesException ex)
{
ex.AddModelStateErrors(ModelState, string.Empty); // Passing string.Empty for prefix, since I don't use prefixes.
}
return View(form);
然而,上述代码不起作用。我当然错过了一些东西,但不知道是什么。这是我第一次使用xVal.
感谢任何的帮助!
解决方案
我认为这个问题是一个事实,即你不使用前缀。 如果调试ModelState中,你可以看到验证的东西像“.FirstName”虽然他们应该像‘名字’。因为那的客户端验证摘要和内容不显示这些验证错误消息。
我认为这是在XVAL的一个错误。
其他提示
艾德里安的观点,我们看不到如果使用DataAnnotations在你的视图模型,或者如果您使用的任何种类的军的描述 这篇文章 .你需要用一些东西喜欢的DataAnnotationsValidationRunner它提到执行验证上的每个酒店的视图模型规定的验证属性使用(例如,需要、范围等)。
基本步骤将是:
- 检索更新的强烈类型视图模型的形式。
- 通过这一模式给你
DataAnnotationsValidationRunner
, 收集的任何错误的结果 - 如果有任何错误(ErrorInfo的对象),把他们作为一个
RulesException
- 抓住
RulesException
并添加验证的例外情况模型使用的例外的AddModelStateErrors
方法 - 检查看看
ModelState.IsValid
, ,如果不是,代表你看,感谢你处理异常现在将有错误开你的视图模型。你必须要确保有合适的ValidationMessage
html帮手的电话在的地方,也引用的联系的文章。
您发布到几乎没有足够简洁,我要弄清楚什么错,但你可以在的这个博客文章。文章还介绍了需要一步一步做的一切,所以这应该帮助你XVAL运行。
不隶属于 StackOverflow