Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于html帮助器上的条件禁用元素_Html_Asp.net Mvc - Fatal编程技术网

基于html帮助器上的条件禁用元素

基于html帮助器上的条件禁用元素,html,asp.net-mvc,Html,Asp.net Mvc,我正在尝试根据条件禁用dropdownlist,我正在使用: var disabledAttr = exists ? "disabled=true" : ""; //exists is a boolean of course @Html.DropDownListFor(x => x.Input.Divisions[index].DivisionPlayers[participantIndex].Team[playerIndex].Id,

我正在尝试根据条件禁用dropdownlist,我正在使用:

var disabledAttr = exists ? "disabled=true" : ""; //exists is a boolean of course
@Html.DropDownListFor(x => x.Input.Divisions[index].DivisionPlayers[participantIndex].Team[playerIndex].Id,
                            new SelectList(Model.ParticipantsList, "Value", "Text", selected),
                            new { @class = "participant form-control", disabledAttr })
但“选择”框将属性渲染为:

 disabledattr="disabled=true"

如何使其呈现为简单的“disabled=true”?

您的问题是将一个属性附加到名为disabledAttr且值为disabled=true的匿名对象

您需要实现的是将属性名为disabled,其值为true(或“true”,不确定哪一个有效,我现在无法测试它。)

快速而肮脏的解决方案:

@{
    string @class = "participant form-control";
    object attrs = exists ? (object)new {@class, disabled = true} : new {@class};
}
@Html.DropDownListFor(x => x.Input.Divisions[index].DivisionPlayers[participantIndex].Team[playerIndex].Id,
    new SelectList(Model.ParticipantsList, "Value", "Text", selected), attrs )

是否可以尝试更改var disabledAttr=“disabled”而不是“disabled=true”?和的可能重复项。答案看起来不错,但预期会出现编译错误“}”,但括号中的所有内容都绝对匹配。奇怪的我正在尝试一个变体,将返回报告。@BMills By bad,我忘了我们在razor视图中,所以前两行需要放在一个代码块中,否则名称
@class
与razor语法冲突也尝试了:“code”var attrs=存在@“新建{@class=”“参与者表单控件“”,disabled=true}”:@“新建{@class=”“参与者表单控件”“}”但由于某种原因,它不能正确地转义引号,因此不起作用。(希望我知道如何在评论中发布代码)查看我的更新。附言。将代码放入注释的方式与将它们放入帖子内联的方式相同:使用backticks:“`无法让它工作Marcel,所以我只使用了一个脏兮兮的'if,else'语句。如果您想提供一个工作的示例,那么我很乐意将其标记为正确答案,因为我知道这与我的代码有关,而不是与您的代码有关。