【发布时间】:2012-11-10 15:59:42
【问题描述】:
我想在布局中显示来自子操作的消息?我怎样才能做到这一点 ? 就像在我的布局中一样,我有一个登录表单(呈现为子操作).. 所以当登录失败时,我想在特定 DIV 的布局中显示一条消息。问题是布局可能在子视图之前呈现。还有另一个问题,布局是由任何控制器呈现的。有什么想法吗?
【问题讨论】:
标签: asp.net-mvc-3 child-actions
我想在布局中显示来自子操作的消息?我怎样才能做到这一点 ? 就像在我的布局中一样,我有一个登录表单(呈现为子操作).. 所以当登录失败时,我想在特定 DIV 的布局中显示一条消息。问题是布局可能在子视图之前呈现。还有另一个问题,布局是由任何控制器呈现的。有什么想法吗?
【问题讨论】:
标签: asp.net-mvc-3 child-actions
您可以在布局中的某处放置验证摘要。 (剃刀语法):
<div>@Html.ValidationSummary(false)</div>
然后,只需使用 [Required] 属性装饰正在传递给您的登录的视图模型。
public class LoginViewModel
{
[Required(ErrorMessage="Please enter a your user name.")]
public string UserName { get; set; }
[Required(ErrorMessage = "Please your password.")]
public string Password{ get; set; }
}
或者如果您想提供更一般的错误消息,只需使用 [Required] 属性装饰您的视图模型属性,然后在您的登录控制器中,在 POST 方法中执行以下操作:
[HttpPost]
public ActionResult Login(LoginViewModel viewModel)
{
if (!ModelState.IsValid)
{
ModelState.AddModelError("Error", "Sorry, your login failed, please try again.");
}
}
然后该错误将显示在验证摘要中。
【讨论】: