簡體   English   中英

弱類型視圖中的ASP.NET MVC驗證

[英]ASP.NET MVC validation in weakly typed views

我在驗證不是強類型的視圖上的數據時遇到問題。 我正在從該視圖上的3個不同模型中更新數據,並且有適用於它們的驗證方法,但是我不知道如何顯示驗證消息。

我應該在哪里放置驗證消息(對於強類型視圖,我將它們放在ModelState中,我認為在這種情況下這沒有意義),以及如何顯示它們(我懷疑我將能夠使用“ validationmessagefor”,也許“驗證消息”(以某種方式)?

在強類型中使用Asp.net MVC驗證非常容易,但是如果您的視圖不是強類型,則仍然可以輕松進行。 假設您在控制器中有以下操作。

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Login(string userEmail, string password)
{
    if (ValidateLogin(userEmail, password))
    {
                //redirect
    }
    return View();
}

您的驗證方法如下:

private bool ValidateLogin(string userEmail, string password)
{
    if (String.IsNullOrEmpty(userEmail))
    {
        ModelState.AddModelError("username", "You must specify a username.");
    }


    if (password == null || password.Length == 0)
    {
        ModelState.AddModelError("password",
               String.Format(CultureInfo.CurrentCulture,
               "You must specify a password."));
    }

    return ModelState.IsValid;
 }

現在,在您的視圖中(在這種情況下,您的視圖文件夾中為login.aspx) ,您可以通過這種方式顯示您的驗證。

<label for="useremail">User Email:</label>
<%= Html.TextBox("useremail") %>
<%= Html.ValidationMessage("useremail")%>

除此之外,您還可以顯示驗證摘要,或僅使用以下幫助程序方法來顯示通用方法。

<%= Html.ValidationSummary(true, "Please correct the errors.") %>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM