Обновите проект MVC1 / xVal до MVC2 и совместите с проверкой на стороне клиента - PullRequest
0 голосов
/ 10 января 2011

Я сейчас ищу здесь, чтобы перенести проект из MVC1 в MVC2. Мы используем xVal для проверки на стороне клиента.

Из того, что я понимаю, мне нужно только удалить ссылки на xVal и заменить MVC2 EnableClientSideValidation, и это должно сработать. Что-нибудь еще потребуется?

Кроме того, xVal не может проверить список моделей на стороне клиента, так ли это в случае с MVC2 + ClientSideValidation? (то, что я имею в виду под «списком моделей», выполняет проверку на List<TypeOfModel>)

Пример этого: Контроллер:

    public ActionResult Index()
    {
        Models.Model1 model = new Models.Model1();
        model.Usernames = new List<Models.Model2>();

        model.Usernames.Add(new Models.Model2 {  });
        model.Usernames.Add(new Models.Model2 {  });
        model.Usernames.Add(new Models.Model2 {  });
        model.Usernames.Add(new Models.Model2 {  });

        return View(model);
    }

Модель1:

class Model1 {  
public List<Model2> Usernames { get; set; }
}

Model2:

class Model2 {  
[Required]
public string Username { get; set; }
}

Вид:

    <% Html.EnableClientValidation(); %>

    <% using (Html.BeginForm()) { %> 

        <% foreach (var username in Model.Usernames) { %> 
            <% Html.RenderPartial("View2", username); %>
            <br /><br />
        <% } %>

        <input type="submit" />

    <% } %>

View2:

<%= Html.EditorFor(f => f.Username) %>
<%= Html.ValidationMessageFor(a => a.Username)%>

Это POC, в котором проверка на стороне клиента MVC2 не выполняется, так как она проверяется по идентификатору поля ...

Ответы [ 2 ]

0 голосов
/ 10 января 2011

Хотя я немного согласен с тем, что Уайетт сказал здесь, особенно с частью о MVC3, но я использовал проверку на стороне клиента MVC2, и это совсем не было плохим опытом.

Чтобы ответить на ваш вопрос, вам необходимо сделать следующее: 1. Включите MicrosoftAjax.js и MicrosoftMvcValidation.js по вашему мнению. 2. Затем просто вызовите помощник <% Html.EnableClientValidation (); %>

Он должен подобрать правила проверки вашей модели DataAnnotation и предоставить вам проверку на стороне клиента без особых усилий.

0 голосов
/ 10 января 2011

Был там, сделал это, получил футболку.И жаль, что я никогда не ходил туда - проверка MVC2 откровенно не вровень с xVal, если вы правильно внедрили xVal.Кроме того, валидация MVC3 выполняется намного лучше.Итак, если бы я прыгал с xVal, я бы направил его на то, чтобы заставить его работать с MVC3, который является совершенно другим зверем.

...