0

子アクションからのレイアウトにメッセージを表示したいですか? どうやってやるの ?私のレイアウトのように、ログイン フォーム (子アクションとしてレンダリング) があります。そのため、ログインが失敗したときに、レイアウトの特定の DIV にメッセージを表示したいと考えています。問題は、レイアウトがおそらく子ビューの前にレンダリングされることです。また、別の問題があります。レイアウトは任意のコントローラーによってレンダリングされます。何か案は ?

4

1 に答える 1

2

検証の概要をレイアウトのどこかに置くことができます。(かみそりの構文):

<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; }
}

または、より一般的なエラー メッセージを表示したい場合は、viewmodel プロパティを [Required] 属性で装飾したままにし、ログイン コントローラーの POST メソッドで次のようにします。

[HttpPost]
public ActionResult Login(LoginViewModel viewModel)
{
    if (!ModelState.IsValid)
    {
        ModelState.AddModelError("Error", "Sorry, your login failed, please try again.");
    }
}

そのエラーは、検証の概要に表示されます。

于 2012-11-10T16:13:01.750 に答える