Рассмотрим следующую настройку:
Модель:
public class Product
{
[ReadOnly(true)]
public int ProductID
{
get;
set;
}
public string Name
{
get;
set;
}
}
Вид:
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master"
Inherits="System.Web.Mvc.ViewPage<MvcApplication4.Models.Product>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Home Page
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<%= Html.EditorForModel() %>
</asp:Content>
Контроллер:
public class HomeController : Controller
{
public ActionResult Index()
{
return View(new Product
{
ProductID = 1,
Name = "Banana"
});
}
}
Результат естьthis:
Я ожидал, что свойство ProductID
не будет редактируемым через атрибут ReadOnly(true)
.Это поддерживается?Если нет, то есть ли способ намекнуть ASP.NET MVC, что некоторые свойства моей модели доступны только для чтения?Я не хотел бы просто прятать ProductID
через [ScaffoldColumn(false)]
.