我在向自定义editortemplate添加验证消息时遇到问题,这是我正在使用的行(我已尝试发布整个模板代码但没有运气)
<%= Html.ValidationMessage(ViewData.ModelMetadata.PropertyName) %>
如果我将模型属性的validationmessage放在模板之外,它可以正常工作,所以我知道modelerror存在。
有什么想法吗?
答案 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属性,您可以在没有强类型助手的情况下执行相同的操作。