自升级到ASP.NET MVC 2 Beta后,Html ValidationMessage无法正常工作

时间:2009-11-19 15:22:48

标签: asp.net-mvc asp.net-mvc-2

我有一个检查验证的更新控制器操作。

if (!ModelState.IsValid) return View(InitialiseModel(model));

我的观点使用了UIHelpers:

<%=Html.EditorForModel("MyModelTemplate") %>

我的模型中有一个名为“Title”的String属性,其属性为[Required]:

 [Required]
 [DisplayName("Resource title")]
 public string Title { get; set; }

此属性的UI模板如下所示:

<%= ViewData.ModelMetadata.IsRequired ? "*" : "" %>
<label for="<%=ViewData.ModelMetadata.PropertyName %>">
    <%=ViewData.ModelMetadata.GetDisplayName() %>
</label>
<input type="text" id="<%=ViewData.ModelMetadata.PropertyName%>" 
 name="<%=ViewData.ModelMetadata.PropertyName%>" value="<%=Model%>" />

<%= Html.ValidationMessage(ViewData.ModelMetadata.PropertyName, "*") %>

问题是 ViewData.ModelMetadata.IsRequired 始终为false。并且永远不会显示验证消息。我错过了什么?

2 个答案:

答案 0 :(得分:0)

可能是个错误?

自: http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-3-default-templates.html

布拉德威尔逊在答复安德鲁时说道。

我不相信[必需]今天设置IsRequired是真的,这听起来像是一个bug。我会调查一下。谢谢!

答案 1 :(得分:0)

您使用的是Ajax.BeginForm还是Html.BeginForm?如果您正在使用Ajax.BeginForm,I just read thi解释了我的问题和你的问题..