3

NerdDinner アプリに xVal を追加してきました。これまでのところ、jQuery.validate を使用してクライアント側の検証を 1 行で取得できます。これは本当に美しいものです。しかし、複雑なオブジェクトを検証するために xVal を取得できないようです。次のようなディナー オブジェクトがあるとします。

public class Dinner
{
     [Required]
     public string Title { get; set; }
}

および別のオブジェクトであるコンテナー:

public class DinnerWrapper
{
     public Dinner Dinner { get; set; }
     public string Name { get; set; }
}

コントローラーがDinnerビューに渡された場合、次のように、フォームの最後で xVal にクライアント側の検証を実行させることができます。

<% using (Html.BeginForm())
       { %>
    <fieldset>
        <p>
            <label for="Title">
                Dinner Title:</label>
            <%= Html.TextBox("Title") %>
            <%= Html.ValidationMessage("Title", "*") %>
        </p>
    </fieldset>
    <% } %>
<%=Html.ClientSideValidation<Dinner>()%>

しかし、DinnerWrapper を渡しているときに動作させることができません。xVal は、次の設定ではクライアント側の検証を実行しません。

<% using (Html.BeginForm())
       { %>
    <fieldset>
        <p>
            <label for="Title">
                Dinner Title:</label>
            <%= Html.TextBox("Title", Model.Dinner.Title) %>
            <%= Html.ValidationMessage("Title", "*") %>
        </p>
    </fieldset>
    <% } %>
<%=Html.ClientSideValidation<DinnerWrapper>()%>

何か案は?これまでのところ、xVal (および NHaml) を NerdDinner アプリにうまく統合できましたが、障害にぶつかったようです。

4

1 に答える 1

0

ClientSideValidation 行を変更する必要はなかったことがわかりました。次のように機能します。

<%=Html.ClientSideValidation<Dinner>()%>
于 2009-05-21T18:06:19.387 に答える