Min*_*nsk 12 c# asp.net asp.net-mvc asp.net-mvc-4
我上课了
public class Item
{
public int ItemId { get; set; }
[Required(ErrorMessage = "Category is required")]
[Range(1, int.MaxValue, ErrorMessage = "Category is required")]
public int CategoryId { get; set; }
[Display(Name = "Current password")]
[Required(ErrorMessage = "Name is required")]
[StringLength(160)]
public string Name { get; set; }
[Required(ErrorMessage = "Price is required")]
[Range(0.01, 100.00,
ErrorMessage = "Price must be between 0.01 and 100.00")]
public decimal Price { get; set; }
public virtual Category Category { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在我的控制器中,我传递了一个这样的实例来查看
public ActionResult Index()
{
var model = new Item
{
CategoryId = 1,
Name = "aaa",
Price = 2
};
return View("Index", model);
}
Run Code Online (Sandbox Code Playgroud)
然后在视图中我尝试使用显示名称
@model GenericShop.Models.Item
<p>
@Html.DisplayNameFor(m => m.Name)
</p>
Run Code Online (Sandbox Code Playgroud)
并得到以下错误
编译器错误消息:CS1061:'System.Web.Mvc.HtmlHelper'不包含'DisplayNameFor'的定义,并且没有扩展方法'DisplayNameFor'接受类型'System.Web.Mvc.HtmlHelper'的第一个参数可以找到(你错过了using指令或程序集引用吗?)
@Html.DisplayFor(m => m.Name)
工作正常,但我不明白为什么
@Html.DisplayNameFor(m => m.Name)
才不是.
DisplayFor
显示模型项的值,DisplayNameFor
只显示属性的名称?
Rot*_*teS 25
差不多了.:)
DisplayNameFor显示属性的名称或属性的display属性中定义的字符串.
public class Item
{
public int ItemId { get; set; }
[Display(Name = "Current name")]
[Required(ErrorMessage = "Name is required")]
[StringLength(160)]
public string Name { get; set; }
[Required(ErrorMessage = "Price is required")]
[Range(0.01, 100.00,
ErrorMessage = "Price must be between 0.01 and 100.00")]
public decimal Price { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
然后@Html.DisplayNameFor(m => m.Name)
会显示"当前名称".
@Html.DisplayNameFor(m => m.Price)
只会显示价格.
请注意,您还可以像这样本地化display属性:
[Display(ResourceType = typeof(MyResources), Name = "Name")]
public string Name{ get; set; }
Run Code Online (Sandbox Code Playgroud)
这反过来将在MyResources resc文件中查找.(如果设置正确).
Html.DisplayFor显示字段的值.
归档时间: |
|
查看次数: |
27433 次 |
最近记录: |