【问题标题】:Want to display a message in layout coming from child action?想要在布局中显示来自子操作的消息?
【发布时间】:2012-11-10 15:59:42
【问题描述】:

我想在布局中显示来自子操作的消息?我怎样才能做到这一点 ? 就像在我的布局中一样,我有一个登录表单(呈现为子操作).. 所以当登录失败时,我想在特定 DIV 的布局中显示一条消息。问题是布局可能在子视图之前呈现。还有另一个问题,布局是由任何控制器呈现的。有什么想法吗?

【问题讨论】:

    标签: asp.net-mvc-3 child-actions


    【解决方案1】:

    您可以在布局中的某处放置验证摘要。 (剃刀语法):

    <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.");
        }
    }
    

    然后该错误将显示在验证摘要中。

    【讨论】:

    • 我还有一个带有验证摘要的联系页面,所以如果我在该页面上登录会发生什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多