2009-05-19 2 views
3

NerdDinnerアプリケーションにxValを追加しました。これまでのところ、1行でjQuery.validateによるクライアント側の検証が得られました。これは本当に美しいものです。しかし、私は複雑なオブジェクトを検証するためにxValを得ることはできません。xValとViewModelパターン - それはできますか?

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

と別のオブジェクト、コンテナ::私はこのようになりますDinnerオブジェクトを持っていると言う

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はFOLとクライアント側の検証を行いません。ローディング設定:

<% 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アプリにうまく統合しましたが、私はロードブロッキングを起こしたようです。

答えて

0

私はClientSideValidationラインを変更する必要はありませんでしたが判明 - それは次のように動作します。

<%=Html.ClientSideValidation<Dinner>()%> 
関連する問題