ASP.NET MVC验证。如何使用嵌套类

时间:2011-09-05 20:08:37

标签: asp.net-mvc validation

我有一个模型,里面有一些属性/类。现在我想验证一下:

                <% = Html.TextBoxFor(p=>p.Ideas.Title, new { @class = "width_percent_80" }) %>
                <% = Html.ValidationMessageFor(model => model.Ideas.Title) %>

但它将textbox命名为Ideas.Title(而不是title)。为什么呢?

2 个答案:

答案 0 :(得分:0)

  

但它将textbox命名为Ideas.Title(而不是title)。为什么呢?

这样默认的模型绑定器就能成功绑定到:

[HttpPost]
public ActionResult Foo(MyViewModel model)
{
   if (!ModelState.IsValid)
   {
       // the model was not valid => redisplay the view 
       // so that the user can fix his errors
       return View(model);
   }

   // at this stage validation passed => we can access individual properties
   // of the view model such as model.Ideas.Title here
   ...
}

答案 1 :(得分:0)

嵌套类将为您提供嵌套字段名称。但是您可以在实体.cs文件中添加注释以覆盖它。

例如: 在您的Ideas.cs文件中,

[Column(name: "title")]              //<- add this
public string Title{ get; set; }

当然,您需要使用DataAnnotation命名空间。

using System.ComponentModel.DataAnnotations;