请在Model和ModelState不匹配时帮我实现编辑器模板。
例如:Model.A ==' x',ViewData.ModelState [' A'] ==' y'。
当表单发布无效时可能会发生这种情况。
原生模板将此作为帐户,并从ModelState中显示正确的值。但我无法找到他们的来源。
我需要在自己的temlate中实现这一点。我应该只检查ModelState中的当前值并在设置时使用它。或者你可以建议一个更好的方法吗?
答案 0 :(得分:1)
我看了一下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值( attemptsValue )。