ASP.NET MVC在新对象参数中插入字符串

use*_*349 0 asp.net-mvc asp.net-mvc-4

我试图在一个字符串变量中插入一个textboxfor来完成他的参数,但结果是这样的variablename=.....

例如,如果我想禁用textbox取决于boolean在modelview:

@string isDisabled = (Model.kbinding_boolvar ? "disabled" : ""); 
@Html.TextBoxFor(m => m.kbinding_namevar, new { @class = "classname", @is_disabled })
Run Code Online (Sandbox Code Playgroud)

html输出是这样的:

<input class="classname" isDisabled="disabled" data-val="true" name="kbinding_textbox_name" type="text" value="" />
Run Code Online (Sandbox Code Playgroud)

代替 :

<input class="classname" disabled data-val="true" name="kbinding_textbox_name" type="text" value="" /> 
Run Code Online (Sandbox Code Playgroud)

用于实现结果的正确语法是什么?

小智 5

将属性定义为对象

@{
    var attributes = Model.kbinding_boolvar ? 
    (object)new { @class = "classname", disabled = "disabled" } :
    (object)new { @class = "classname"};
}

@Html.TextBoxFor(m => m.kbinding_namevar, attributes)
Run Code Online (Sandbox Code Playgroud)