0

現在、プロジェクトを MVC1 から MVC2 に移行するためにここを探しています。クライアント側の検証には xVal を使用しています。

私が理解していることから、xValへの参照を削除してMVC2 EnableClientSideValidationに置き換えるだけで、うまくいくはずです。他に何か必要ですか?

また、xVal ではクライアント側でモデルのリストを検証できませんでしたが、MVC2 + ClientSideValidation にも当てはまりますか? (「モデルのリスト」で意味するのは、で検証を行うことですList<TypeOfModel>)

これの例は次のとおりです: コントローラ:

    public ActionResult Index()
    {
        Models.Model1 model = new Models.Model1();
        model.Usernames = new List<Models.Model2>();

        model.Usernames.Add(new Models.Model2 {  });
        model.Usernames.Add(new Models.Model2 {  });
        model.Usernames.Add(new Models.Model2 {  });
        model.Usernames.Add(new Models.Model2 {  });

        return View(model);
    }

モデル1:

class Model1 {  
public List<Model2> Usernames { get; set; }
}

モデル 2:

class Model2 {  
[Required]
public string Username { get; set; }
}

意見:

    <% Html.EnableClientValidation(); %>

    <% using (Html.BeginForm()) { %> 

        <% foreach (var username in Model.Usernames) { %> 
            <% Html.RenderPartial("View2", username); %>
            <br /><br />
        <% } %>

        <input type="submit" />

    <% } %>

ビュー 2:

<%= Html.EditorFor(f => f.Username) %>
<%= Html.ValidationMessageFor(a => a.Username)%>

これは、フィールド ID で検証するため、MVC2 クライアント側の検証が失敗する POC です...

4

2 に答える 2

0

そこに行って、それをして、Tシャツを手に入れました。そして、私がそこに行かなかったらよかったのに-xValを適切に実装した後、MVC2の検証は率直に言ってxValと同等ではありません。さらに、MVC3 の検証ははるかに優れています。したがって、xVal から飛び降りる場合は、まったく異なる獣である MVC3 で動作させることにベクトルを向けます。

于 2011-01-10T17:37:32.563 に答える
0

私はワイアットがここで言ったこと、特にMVC3についての部分にいくらか同意しますが、私はMVC2クライアント側の検証を使用しており、まったく悪い経験ではありませんでした.

質問に答えるには、次のことを行う必要があります。 1. ビューに MicrosoftAjax.js と MicrosoftMvcValidation.js を含めます。2. 次に、ヘルパー <% Html.EnableClientValidation(); を呼び出すだけです。%>

DataAnnotation モデルの検証ルールを取得し、クライアント側の検証をそれほど労力をかけずに行う必要があります。

于 2011-01-10T19:22:18.327 に答える