ValidationMessage没有显示在自定义asp.net mvc 2 editortemplate中

时间:2010-01-27 20:43:38

标签: asp.net-mvc-2

我在向自定义editortemplate添加验证消息时遇到问题,这是我正在使用的行(我已尝试发布整个模板代码但没有运气)

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

如果我将模型属性的validationmessage放在模板之外,它可以正常工作,所以我知道modelerror存在。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

我有一个答案:)

您需要在属性的键前添加模型中属性的名称。

例如,如果您的模型如下所示:

public class MyModel
{
    public ChildModel Child { get; set; }
}

如果您想添加Child模板可以看到的错误消息,您需要在错误消息的密钥前面添加如下内容:

ModelState.AddModelError("Child.SomeKey", "Error message");

在ChildModel的模板视图中,显示如下错误:

<%= Html.ValidationMessage("SomeKey")%>

答案 1 :(得分:0)

我使用强类型的html助手。

实施例

<div class="editor-label"><%= Html.LabelFor(model => model); %></div>
<div class="editor-field"><%= Html.TextBoxFor(model => model); %></div>
<div class="editor-error"><%= Html.ValidationMessageFor(model => model); %></div>

通过使用Model ViewPage / Control属性,您可以在没有强类型助手的情况下执行相同的操作。

相关问题