次の設定を検討してください。
モデル:
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"
});
}
}
結果は次のとおりです。
ProductID
属性を介してプロパティを編集できないと予想していましたReadOnly(true)
。これはサポートされていますか? そうでない場合、モデルの一部のプロパティが読み取り専用であることを ASP.NET MVC に示唆する方法はありますか? ProductID
経由で非表示にしたくありません[ScaffoldColumn(false)]
。