2009-05-19 61 views
3

我一直在向NerdDinner應用程序中添加xVal - 迄今爲止這麼好,我在一行中獲得了jQuery.validate的客戶端驗證,這真的很漂亮。但我似乎無法讓xVal驗證複雜的對象。說我有一個Dinner對象,看起來像這樣:xVal和ViewModel模式 - 可以完成嗎?

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不與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>()%>