Asp.net mvc 4 带有条件的列中的MVC 4 WebGrid复选框
我正在尝试向.Net MVC WebGrid添加一个新列,该列包含一个复选框,如果满足特定条件,则该复选框在那里,如果条件为false,则不在那里 以下代码用于正确显示X或Y(占位符): 我似乎无法正确地使用语法来包含复选框而不是XAsp.net mvc 4 带有条件的列中的MVC 4 WebGrid复选框,asp.net-mvc-4,Asp.net Mvc 4,我正在尝试向.Net MVC WebGrid添加一个新列,该列包含一个复选框,如果满足特定条件,则该复选框在那里,如果条件为false,则不在那里 以下代码用于正确显示X或Y(占位符): 我似乎无法正确地使用语法来包含复选框而不是X grid.Column("ID", header: "", style: "labelcolumn", format: (item) => item.ID != null ? @<text
grid.Column("ID", header: "",
style: "labelcolumn",
format: (item) => item.ID != null ? @<text><input class="check-box" id="cbSelectedBranch" name="cbSelectedBranch" type="checkbox" value="@item.ID" /></text> : "Y"),
grid.Column(“ID”,标题:“”,
样式:“labelcolumn”,
格式:(item)=>item.ID!=null?@:“Y”),
在第二个代码段中,“(item)”变量导致以下错误:
CS0136:无法在此作用域中声明名为“item”的局部变量
因为它会赋予“item”不同的含义,而“item”已经是
在“父或当前”范围中用于表示其他内容
使用if null条件时添加@似乎会导致项抛出此错误。以下代码(不带条件)正常工作:
grid.Column(header: "",
style: "labelcolumn",
format: @<text><input class="check-box" id="cbSelectedBranch" name="cbSelectedBranch" type="checkbox" value="@item.ID" /></text>),
grid.Column(标题:“”,
样式:“labelcolumn”,
格式:@),
知道如何使用条件和复选框输入来实现这一点吗 试着这样做:
format: (item) => item.ID != null ? Html.Raw("<input class='check-box' id='cbSelectedBranch' name='cbSelectedBranch' type='checkbox' value='@item.ID' />") : "Y")
格式:(item)=>item.ID!=无效的Html.Raw(“”:“Y”)
谢谢,但这也不行。它确实绕过了“名为'item'的局部变量无法声明”的问题,但是当它碰到冒号前面的@符号时,它会抛出一个错误“Expression Expected”。第二次更新不会抛出任何错误,但它会将复选框呈现为文本文本而不是复选框,ie显示如下:用Html.Raw和CheckThank包装它。。。那已经足够近了,我让它工作了。条件的两面都需要用Html.Raw包装,并且必须更改插入值的方式(因为它实际上是插入文本@item.ID而不是ID)。最终版本如下:格式:(item)=>item.ID!=无效的Html.Raw(string.Format(“,@item.ID)):Html.Raw(“Y”)
format: (item) => item.ID != null ? Html.Raw("<input class='check-box' id='cbSelectedBranch' name='cbSelectedBranch' type='checkbox' value='@item.ID' />") : "Y")