Префикс на стороне клиента xVal, вызывающий проблемы с ModelBinder - PullRequest
1 голос
/ 02 декабря 2009

За последние 24 часа я очень полюбил xVal.Я ввел его в свой личный веб-сайт, и он работает как чемпион - я не могу поверить, как легко это было сделать.Я использую ASP.Net MVC, xVal 1.0 и валидаторы DataAnnotations.

Теперь, пытаясь внедрить этот же код в рабочее приложение, я вижу другое поведение.Я достаточно логичен, чтобы знать, что у меня, вероятно, есть что-то другое, но я не могу понять, что это такое.

Чтобы сделать проверку на стороне клиента, я добавил префиксы «message» к своим полям,вот так:

<%= Html.TextBox("message.Subject", Model.Subject, new { @class = "contact-input required" })%>

и так далее.Мой контроллер затем имеет такую ​​логику:

[AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Index(Message message)
    {
        try
        { // some code here

Теперь, автоматически, ModelBinder фактически заполняет мой объект.Это замечательно.

Проблема в том, что в моем рабочем проекте я пытаюсь сделать то же самое - проверка на стороне клиента работает отлично, но ModelBinder не заполняет мою модель.Я знаю, что это проблема с префиксом, так как когда я удаляю префикс, это нормально.

Единственное отличие в сценариях состоит в том, что рабочий проект использует минимизированную библиотеку проверки jquery.

Любые идеина что искать?

Ответы [ 2 ]

0 голосов
/ 03 ноября 2010

[AcceptVerbs(HttpVerbs.Post)] public ActionResult Index([Bind(Prefix = "Message")]Message message)

Бизнес с xval отсутствует, это что-то о asp.net mvc ModelBinder

надеюсь, что это полезно 100

мой английский - пул (:

0 голосов
/ 02 декабря 2009

Вам не нужны префиксы для работы xVal, но вам нужны одинаковые имена для ваших входов, чтобы ваш ModelBinder работал правильно.Так что просто добавьте DataAnnotations к свойствам классов, которые вы собираетесь связать с представлением, и вызовите xVal html helper «ClientSideValidation», также вам нужно добавить ссылку на xval, scripts: jquery, jquery.validate, xval.проверить ...

...