Обязательное поле Не работает для одного поля, но работает для другого - PullRequest
0 голосов
/ 08 октября 2010

Я использую стандартную проверку с MVC, с моим беглым nHibernate

    [DisplayName("Product Name")]
    [Required(ErrorMessage = "Product Name Required")]
    public virtual string ProductName { get; set; }

    [DataType(DataType.MultilineText)]
    public virtual string Description { get; set; }

    [DataType(DataType.Currency)]
    [Required(ErrorMessage = "Price Required")]
    public virtual decimal Price { get; set; }

    [Required(ErrorMessage = "Quantity Required")]
    [Range(0, 100000, ErrorMessage = "Must be postive number less then 100000")]
    public virtual int Quantity { get; set; }


    public virtual bool Live { get; set; }

    public virtual ICollection<Attribute> Attribute { get; set; }
    public virtual ICollection<Images> Images { get; set; }

Это то, что составляет мой класс "Product" ... по какой-то причине имя не проверяется как обязательное полено такие вещи, как количество и цена делают.

В представлении есть эти значения

<tr>
                <td>
                    <%= Html.LabelFor(model => model.ProductName)%>
                </td>
                <td>
                    <%= Html.TextBoxFor(model => model.ProductName, new { @class = "txt" })%>
                    <%= Html.ValidationMessageFor(model => model.ProductName)%>
                </td>
            </tr>

, и этот бит работает нормально

<tr>
                <td>
                    <%= Html.LabelFor(model => model.Price) %>
                </td>
                <td>
                    <%= Html.TextBoxFor(model => model.Price, String.Format("{0:F}", Model.Price)) %>
                    <%= Html.ValidationMessageFor(model => model.Price) %>
                </td>
            </tr>

И это контроллер, который запрашивается

    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult AddProduct(Product NewProduct)
    {
        if (ModelState.IsValid)
        {

            var ProductRepository = GetRepository<Product>();
            ProductRepository.Add(NewProduct);

            return Redirect("/");
        }

        return View(NewProduct);
    }

Ответы [ 2 ]

1 голос
/ 08 октября 2010

Просто попробуйте:

[DisplayName("Product Name")]
[Required(ErrorMessage = "Product Name Required", AllowEmptyStrings = false)]
public virtual string ProductName { get; set; }
0 голосов
/ 11 октября 2010

я обнаружил, что это проблема, не указав тип данных

[DataType(DataType.Text)]

Отсутствует в моем поле ProductName!

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