使用剃刀禁用输入元素

Bon*_*omi 5 html c# asp.net-mvc razor

我需要在其值等于"*"时动态禁用输入.如何使用MVC Razor实现这一目标?

    @Html.TextBoxFor(m => m.Digits[0], new { @class = "form-control input-lg label_16", @placeholder = 
"1st", (Model.Digits[0] == "*" ? "disabled" : "") })
Run Code Online (Sandbox Code Playgroud)

上面的代码没有编译这可能吗?

eka*_*kad 14

尝试使用三元运算符

@Html.TextBoxFor(m => m.Digits[0], Model.Digits[0] == "*" ? (object)new { @class = "form-control input-lg label_16", @placeholder = 
"1st", @disabled = "disabled" } : new { @class = "form-control input-lg label_16", @placeholder = 
"1st" })
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,@Html.TextBoxForhelper方法的第二个参数将基于Model.Digits[0].如果是,*那么参数将包括disabled属性

new { @class = "form-control input-lg label_16", @placeholder = 
"1st", @disabled = "disabled" }
Run Code Online (Sandbox Code Playgroud)

除此以外

new { @class = "form-control input-lg label_16", @placeholder = 
"1st" }
Run Code Online (Sandbox Code Playgroud)

  • 我在问这个问题之前尝试了你的代码,它会产生以下输出:disabled ="disabled"或disabled.在这两种情况下,输入框都被禁用! (2认同)