Проверка MVC не работает в проекте веб-форм - PullRequest
0 голосов
/ 13 июля 2010

У меня есть следующий код на странице просмотра aspx:

<% using (Html.BeginForm())
    { 
 %>
<div>
    CustomerCode:&nbsp;
    <%= Html.TextBoxFor(x=>  x.CustomerCode) %>
    <%= Html.ValidationMessageFor(x => x.CustomerCode)%>

и этот код в моей модели:

public class MyModel
{

    [Required(ErrorMessage="customer code req")]
    [StringLength(2,ErrorMessage="must be 2 u idiot")]
    public string CustomerCode {get; set;}

Хотя, если я введу более 2 символов в текстовое поле и отправлю страницу, в контроллере, когда я это сделаю:

        if (ModelState.IsValid)

Это всегда говорит, что это действительно? Что мне не хватает? Я поместил этот проект MVC в проект Web Forms, но проект MVC работает нормально, это просто проверка, которая не работает, есть идеи? Благодаря.

Ответы [ 2 ]

3 голосов
/ 13 июля 2010

Убедитесь, что действие контроллера принимает модель в качестве параметра:

public ActionResult SomeAction(MyModel model)
{
    if (ModelState.IsValid)
    {

    }
    return View();
}

Теперь, если вы вызываете:

http://example.com/myapp/home/someaction?customercode=123

Модель не должна быть действительной.

0 голосов
/ 13 июля 2010

Хм, у меня работает на тестовой странице со следующим

    public ActionResult Test()
    {
        MyModel model = new MyModel();
        return View(model);
    }

    [HttpPost]
    public ActionResult Test(MyModel model)
    {
        if (ModelState.IsValid) { }
        return View(model);
    }

<% using (Html.BeginForm()) {%>
    <%: Html.ValidationSummary(true) %>

    <fieldset>
        <legend>Fields</legend>

        <div class="editor-label">
            <%: Html.LabelFor(model => model.CustomerCode) %>
        </div>
        <div class="editor-field">
            <%: Html.TextBoxFor(model => model.CustomerCode) %>
            <%: Html.ValidationMessageFor(model => model.CustomerCode) %>
        </div>

        <p>
            <input type="submit" value="Create" />
        </p>
    </fieldset>

<% } %>

public class MyModel
{
    [Required(ErrorMessage = "customer code req")]
    [StringLength(2, ErrorMessage = "must be 2 u idiot")]
    public string CustomerCode { get; set; }

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