如何将@ Html.TextBoxFor()创建为只读或禁用

时间:2016-06-30 09:26:04

标签: html asp.net-mvc razor html.textboxfor

我有一个在局部视图中动态创建组件的视图,在某些情况下,这些组件只需要是只读的。我已使用以下代码成功管理其他组件

$(document).ready(function () {
    if("@Model.IsUnderReview" == "True") {
        document.getElementById("textbox_" + "@Model.ID").disabled = true;
    }
});

然而,在这种情况下,它们是在循环中创建的,并且可以有任意数量。如何获取以下代码并将其设置为只读?

@Html.TextBoxFor(m => m.Configuration.First(c => c.ID == config.ID && c.ProductRow == config.ProductRow).TextboxEntry, new Dictionary<string, object>{
                        {"id", "infoTextbox_" + Model.NumberOfDuplicates + "_" + config.ID},
                        {"configid", (config.ID + Model.NumberOfDuplicates)},
                        {"onchange", "HandleChange($(this))"}}) 

我尝试插入@readonly =&#34; readonly&#34;但我的语法错误,因为它没有工作。

1 个答案:

答案 0 :(得分:0)

如果您只想在htmlAttributes中添加它:

            @Html.TextBoxFor(m => m.Configuration.First(c => c.ID == config.ID && c.ProductRow == config.ProductRow).TextboxEntry, new Dictionary<string, object>{
                    {"id", "infoTextbox_" + Model.NumberOfDuplicates + "_" + config.ID},
                    {"configid", (config.ID + Model.NumberOfDuplicates)},
                    {"onchange", "HandleChange($(this))"}}, new { @disabled = "disabled"})