我有一个非常基本的实体模型,我正在尝试向其中添加自定义验证消息。
我的元数据如下所示:
namespace My.Models {
[MetadataType(typeof(My.Models.ConsumerMetadata))]
public partial class Consumer
{
}
public class ConsumerMetadata
{
[StringLength(5)]
[Required(ErrorMessage="First name is an absolute must!")]
public string FirstName { get; set; }
} }问题是,我添加的数据注释没有传播到视图错误-这些错误仍然是默认错误。
我确信我在这里错过了一些简单的东西。
发布于 2010-02-26 06:37:44
您是否在页面中添加了Html.ValidationSummary()?
发布于 2010-02-26 22:47:17
您的视图是什么样子的?您必须确保您的输入具有正确的ids
在MVC1中,您必须编写
<%= Html.TextBox("data.FirstName") %>
<%= Html.ValidationMessage("data.FirstName") %>在MVC2中,这甚至更简单,特别是当您有一个强类型视图ViewPage<Consumer>时
<%= Html.TextBoxFor(model => model.FirstName) %>
<%= Html.ValidationMessageFor(model => model.FirstName) %>您的控制器操作:
public ActionResult AddConsumer(Consumer data)
{
if (!this.ModelState.IsValid)
{ ... }
...
}在MVC2中,验证将在执行进入此操作之前进行。因此,您将能够简单地检查ModelState.IsValid。但在MVC中,这是编写自定义操作过滤器来验证对象的最佳方式。你必须用过滤器属性来装饰你的动作。您的对象将得到验证,您可以相应地执行相应的操作。
https://stackoverflow.com/questions/2337628
复制相似问题