0

我的应用程序是 MVC3 ASPX C#;我正在尝试使用以下方法启用/禁用 Html.EditorFor: 在模型中:

 public bool IsReadOnly { get; private set; }

在控制器中:

   if (MySession.Current._progress == 100)
       ViewData["ReadOnly"] = true;

在视图中:

... Inherits="System.Web.Mvc.ViewPage<Models.CTAHFormEdit>" %>
 <script runat="server" type="text/C#">
        bool isReadOnly = false;
        protected void Page_Load(object sender, EventArgs e)
        {
            if ((bool?)this.ViewData["ReadOnly"] == true)this.isReadOnly = true;
        }
    </script>
    <%: Html.EditorFor(model => model.Vessel_calcification, Model.IsReadOnly)%>

这没有用。我也试过:

  <%: Html.EditorFor(model => model.Subject_motion, new { @disable = true })%>

也没有工作!

最好的解决方案,因为我在同一个视图中也有下拉列表和复选框是使用 @disable = true 和 @readonly = true 或 false 并且能够使用 ViewBag 更改 true 或 false。任何建议,提前感谢。

4

1 回答 1

1

你可以试试这个:

@Html.TextBoxFor(model => model.Subject_motion, new { @readonly = "readonly" })

下面解释一下EditorFor和TextBoxFor的区别:

MVC 和 Razor 中 Html.TextboxFor 和 Html.EditorFor 的区别

于 2012-11-16T20:30:37.253 回答