MVC3 项目中 [HiddenInput(DisplayValue=false)] 时,页面文件中并没有隐藏该属性
在.NET MVC3 Framework 示例项目中,有如下代码:
public class Product { [HiddenInput(DisplayValue=false)] public int ProductID { get; set; } public string Name { get; set; } [DataType(DataType.MultilineText)] public string Description { get; set; } public decimal Price { get; set; } public string Category { get; set; } }
其中按书中的意思, [HiddenInput(DisplayValue=false)] 这个代码的功能是告诉VS,在前台页面中隐藏ProductID属性。
<h2>Edit @Model.Name</h2> <script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script> <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script> @using (Html.BeginForm()) { @Html.EditorForModel() <p> <input type="submit" value="Save" /> </p> } <div> @Html.ActionLink("Back to List", "Index") </div>
但是在运行过程中,ProductID还是显示了出来。
原因在于,自己使用的是VS2012,在数据层的项目中添加的System.Web.Mvc的引用是4.0版本的,项目本身是3.0版本。不知道如果项目是MVC 4.0会不会有此问题。
有待日后进一步研究。