MVC3 项目中 [HiddenInput(DisplayValue=false)] 时,页面文件中并没有隐藏该属性 Kevin

在.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会不会有此问题。

有待日后进一步研究。

原文地址:https://www.cnblogs.com/kfx2007/p/2971129.html