Asp.net mvc 定义使用ModelState的编辑器模板

Asp.net mvc 定义使用ModelState的编辑器模板,asp.net-mvc,Asp.net Mvc,当模型和模型状态不匹配时,请帮助我实现编辑器模板 例如:Model.A=='x',ViewData.ModelState['A']=='y' 当表单发布无效时可能会发生这种情况 本机模板考虑到这一点,并显示ModelState中的正确值。但我找不到他们的消息来源 我需要在我自己的网站上实现这一点。我是否应该在ModelState中检查当前值,并在设置时使用它。或者你可以建议一个更好的方法吗?我查看了HtmlHelpers(编辑)并提出了这个。在本例中,模型/值为整数: var value = M

当模型和模型状态不匹配时,请帮助我实现编辑器模板

例如:Model.A=='x',ViewData.ModelState['A']=='y'

当表单发布无效时可能会发生这种情况

本机模板考虑到这一点,并显示ModelState中的正确值。但我找不到他们的消息来源


我需要在我自己的网站上实现这一点。我是否应该在ModelState中检查当前值,并在设置时使用它。或者你可以建议一个更好的方法吗?

我查看了HtmlHelpers(编辑)并提出了这个。在本例中,模型/值为整数:

var value = Model; //value according to the model
var fieldName = ViewData.TemplateInfo.GetFullHtmlFieldName("");
ModelState modelState;
if(ViewData.ModelState.TryGetValue(fieldName, out modelState) && modelState.Value != null)
{
    value = (int?) modelState.Value.ConvertTo(typeof(int?), null);
}

现在,该值包含模型值或发布的ModelState值(attemptedValue)。

使用内置的html帮助器方法,这些方法会考虑到这一点。您试图呈现什么?编辑字段的Javascript组件。我通过Html.HiddenFor方法存储初始值来解决这个问题。以前我是这样存储值的