Asp.net mvc 根据条件禁用列表中的控件

Asp.net mvc 根据条件禁用列表中的控件,asp.net-mvc,asp.net-mvc-5,Asp.net Mvc,Asp.net Mvc 5,我的视图上有一个下拉列表和一个搜索按钮。当用户从下拉列表中选择年份并单击搜索时,我将显示一个列表 此列表有五列,第一列是复选框。其他列有文本框。还有一个保存按钮。用户选中几个复选框并单击“保存”。选定行的列值保存在数据库中,列表将重新加载 此时,当列表重新加载时,我想禁用一些行。这些是以前检查和保存的行 我想知道如何使复选框和文本框从控制器禁用 是否有任何方法可以在不使用jQuery或javascript的情况下从控制器中的C代码执行此操作 我正在使用Razor引擎。当复选框的每一行都有特定值时

我的视图上有一个下拉列表和一个搜索按钮。当用户从下拉列表中选择年份并单击搜索时,我将显示一个列表

此列表有五列,第一列是复选框。其他列有文本框。还有一个保存按钮。用户选中几个复选框并单击“保存”。选定行的列值保存在数据库中,列表将重新加载

此时,当列表重新加载时,我想禁用一些行。这些是以前检查和保存的行

我想知道如何使复选框和文本框从控制器禁用

是否有任何方法可以在不使用jQuery或javascript的情况下从控制器中的C代码执行此操作


我正在使用Razor引擎。

当复选框的每一行都有特定值时,您的视图将在文本框上呈现禁用标志。你不能从控制器上真正完成这项工作

大概是这样的:

@foreach ()
{
    <tr>
        <td>
            <input type="text" @(checkboxIsChecked ? "disabled=\"disabled\"" : "") />
        </td>
    </tr>
}

如果我使用的是@Html.TextBoxFor,那么?@Html.TextBoxname,value,new{@disabled=checkboxIsChecked?disabled:}}不确定您想用它实现什么。除非您为每行中的索引器生成隐藏输入,否则禁用集合中的输入将导致在您第二次回发时绑定失败。@StephenMuecke如何为每行放置隐藏输入?如果没有看到您的模型,我无法提供实际代码,但应该会有所帮助。注意这行。它允许非零基、非连续索引器回发并绑定到集合。