Проверка с помощью Ajax и MVC - PullRequest
       2

Проверка с помощью Ajax и MVC

0 голосов
/ 19 октября 2010

Я ищу лучший способ воспользоваться проверкой MVC при использовании Ajax и отсутствии доступа к классу.

На моей главной странице она будет содержать простую форму (имя, адрес электронной почты, телефон, комментарии), которую я отображаю в оверлее. Так как это на главной странице доступно на любой странице, главная страница никогда не наследует класс, как вы это делали бы при обычной проверке. Поэтому я не уверен, как (или если это все еще возможно) проверить мою форму таким же образом.

Я думал, что создание класса с теми же правилами валидации, которые я обычно применяю, поможет, а затем попытается загрузить это из viewdata? это лучший способ или проверка не будет работать при этом?

1 Ответ

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

Проверка на стороне сервера все равно будет работать, если вы создадите класс на стороне сервера с правилами проверки.Но добавление клиентских полей ввода должно быть сделано вручную и без использования модели представления:

<% using Html.BeginForm("ActionName", "Controller") %>
<% { %>
    <%= Html.TextBox("Name") %>
    <%= Html.TextBox("Email") %>
    <%= Html.TextBox("Phone") %>
    <%= Html.TextArea("CommentText") %>
<% } %>

Ваше действие контроллера будет выглядеть так:

[HttpPost]
public ActionResult ActionName(Comment comment)
{
    if (!this.Model.IsValid)
    {
        // handle model state exception
    }
    // save comment
    return // whatever needed
}

конечно, пока вы имеетекласс:

public class Comment
{
    [Required]
    public string Name { get; set; }

    [RegularExpression(/* provide the email reg ex here */)]
    public string Email { get; set; }

    public string Phone { get; set; }

    [Required] // probably, but you'd know best
    public string CommentText { get; set; }
}

И при этом я призываю вас прочитать мою запись в блоге об Asp.net MVC ajax и проверке модели, которая может вам помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...