部分视图和 ModelState.AddModelError

Mir*_*ine 5 asp.net-mvc partial-views modelstate asp.net-mvc-3

视图的来源LoginRegister是这样的:

@Html.Partial("authentication/_login")
@Html.Partial("authentication/_register")
Run Code Online (Sandbox Code Playgroud)

每个子视图都有一个具有此语法的表单

@using (Html.BeginForm(**seperated-methods**, "Login")) 
{
    @Html.ValidationSummary(false)
} 
Run Code Online (Sandbox Code Playgroud)

我通过此代码在回发中发送错误

ModelState.AddModelError("", "**any-error-message**");
return View("authentication/LoginRegister", customized-data);
Run Code Online (Sandbox Code Playgroud)

关键是,错误消息显示在两者中partial views

gdo*_*ica 4

您需要告诉 ModelState 此错误引用的是哪个属性:

ModelState.AddModelError("PropertyName", "**any-error-message**");
Run Code Online (Sandbox Code Playgroud)

现在它只会在

@Html.ValidationMessageFor(m => m.PropertyName)
Run Code Online (Sandbox Code Playgroud)

如果您不指定属性名称,错误将被视为全局错误并显示在每个ValidationSummary.