Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.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
Asp.net mvc 4 带有条件的列中的MVC 4 WebGrid复选框_Asp.net Mvc 4 - Fatal编程技术网

Asp.net mvc 4 带有条件的列中的MVC 4 WebGrid复选框

Asp.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

我正在尝试向.Net MVC WebGrid添加一个新列,该列包含一个复选框,如果满足特定条件,则该复选框在那里,如果条件为false,则不在那里

以下代码用于正确显示X或Y(占位符):

我似乎无法正确地使用语法来包含复选框而不是X

        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")