xVal и шаблон ViewModel - это можно сделать? - PullRequest
3 голосов
/ 19 мая 2009

Я добавляю xVal в приложение NerdDinner - пока что все хорошо, я получаю проверку на стороне клиента с jQuery.validate в одной строке, что действительно прекрасно. Но я не могу заставить xVal проверить сложный объект. Скажем, у меня есть объект Dinner, который выглядит так:

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

и другой объект, контейнер:

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

Если мой контроллер передает Dinner в View, я могу заставить 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, но, похоже, у меня возникли препятствия.

1 Ответ

0 голосов
/ 21 мая 2009

Оказывается, мне не нужно было менять строку ClientSideValidation - она ​​работает так:

<%=Html.ClientSideValidation<Dinner>()%>
...