使用ViewData启用/禁用Html.EditorFor

时间:2012-11-16 19:53:10

标签: asp.net-mvc-3

我的应用程序是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的true。任何建议,谢谢你们。

1 个答案:

答案 0 :(得分:1)

你可以试试这个:

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

以下是EditorFor和TextBoxFor之间差异的解释:

Differences between Html.TextboxFor and Html.EditorFor in MVC and Razor