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 アプリにうまく統合できましたが、障害にぶつかったようです。