asp.net-mvc - ReadOnly(true) 是否可以与 Html.EditorForModel 一起使用?

标签 asp.net-mvc asp.net-mvc-2 readonly-attribute

考虑以下设置:

型号:

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>

Controller :

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View(new Product
            {
                ProductID = 1,
                Name = "Banana"
            });
    }
}

结果是这样的: alt text

我预计 ProductID 属性无法通过 ReadOnly(true) 属性进行编辑。支持吗?如果没有,有什么方法可以提示 ASP.NET MVC 我的模型的某些属性是只读的吗?我不想只是通过 [ScaffoldColumn(false)] 隐藏 ProductID

最佳答案

我通过向“ReadOnly”类的属性添加 UIHintAttribute 解决了这个问题。

[UIHint("ReadOnly")]
public int ClassID { get; set; }

然后我只是将一个 ~\Views\Shared\EditorTemplates\ReadOnly.ascx 文件添加到我的项目中,其中包含以下内容:

<%= Model %>

添加自定义模板的非常简单的方法,您可以包含格式或其他内容。

关于asp.net-mvc - ReadOnly(true) 是否可以与 Html.EditorForModel 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3510081/

相关文章:

ios - 是否可以在 iOS 中使用 KVC 将值设置为只读属性?

javascript - md-datepicker - 输入字段应为只读 - 不允许手动输入日期

asp.net - LegacyCasModel ="true"和动态数据/操作

asp.net - Visual Studio 2012 Web Publish 不复制文件

c# - Asp.net MVC2 - 表单后绑定(bind)

css - 如何使用 Asp.Net MVC 管理 Multi-Tenancy Web 门户 css

java - Apache POI - Excel - 文件 -> 密码 ->"Read-only recommended"(如何禁用)

asp.net-mvc - 无法从数据库查询

asp.net - 压缩过滤器 + MVC + Yahoo YSlow

c# - MVC 和 EditorFor 宽度