Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.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 在MVC中转换razor html复选框的Y/N值_Asp.net Mvc_Razor_Html Helper - Fatal编程技术网

Asp.net mvc 在MVC中转换razor html复选框的Y/N值

Asp.net mvc 在MVC中转换razor html复选框的Y/N值,asp.net-mvc,razor,html-helper,Asp.net Mvc,Razor,Html Helper,我在razor for循环中从我的模型中读取Y/N值 我想将值从Y/N更改为true/false <td>@Html.CheckBoxFor(modelItem => (item.ReqDowngrade == "Y" ? true : false))</td> @Html.CheckBoxFor(modelItem=>(item.ReqDegrade==“Y”?true:false)) 我一直遇到以下错误:System.InvalidOperationExce

我在razor for循环中从我的模型中读取Y/N值

我想将值从Y/N更改为true/false

<td>@Html.CheckBoxFor(modelItem => (item.ReqDowngrade == "Y" ? true : false))</td>
@Html.CheckBoxFor(modelItem=>(item.ReqDegrade==“Y”?true:false))
我一直遇到以下错误:System.InvalidOperationException:“模板只能用于字段访问、属性访问、一维数组索引或单参数自定义索引器表达式。”


有什么方法可以在不创建服务器视图模型的情况下执行此操作吗?

此声明完全错误:

@Html.CheckBoxFor(modelItem => (item.ReqDowngrade == "Y" ? true : false))
CheckBoxFor
helper仅接受模型绑定类型为
bool
Nullable
的viewmodel属性,因此不应使用上述条件表达式。如果要将
Y
N
值指定给绑定了
CheckBoxFor
的新bool viewmodel属性,请改为执行以下操作:

视图模型

// assumed both 'ReqDownGrade' & new bool property are in same viewmodel class 
public bool CheckReqDownGrade 
{
   get
   {
       // returns false if ReqDownGrade is 'N'
       return (ReqDownGrade == "Y");
   }
   set
   {
       CheckReqDownGrade = value;
       CheckReqDownGrade == true ? ReqDownGrade = "Y" : ReqDownGrade = "N";
   }
}
查看

@Html.CheckBoxFor(model => model.CheckReqDownGrade)
@Html.HiddenFor(modelItem => item.ReqDowngrade, new { id = "ReqDownGrade" })

<input id="CheckReqDownGrade" type="checkbox" @(item.ReqDowngrade == "Y" ? "checked='checked'" : "") />
如果仍然坚持不添加
bool
viewmodel属性,则可以使用
HiddenFor
、带有
type=“checkbox”
属性和简单JS技巧的标准HTML
input
元素:

查看

@Html.CheckBoxFor(model => model.CheckReqDownGrade)
@Html.HiddenFor(modelItem => item.ReqDowngrade, new { id = "ReqDownGrade" })

<input id="CheckReqDownGrade" type="checkbox" @(item.ReqDowngrade == "Y" ? "checked='checked'" : "") />
@Html.HiddenFor(modeleItem=>item.reqgrade,新的{id=“reqgrade”})
JS(jQuery)


$(函数(){
$('#checkreqgrade')。单击(函数(){
var isChecked=$(this).is(':checked');
$('#reqgrade').val(被选中?'Y':'N');
});
});

从控制器发送解析数据。您可以发送true和false value>是否有任何方法可以在不创建服务器视图模型的情况下执行此操作?听起来视图模型正是您想要的。您的属性必须是
bool
才能使用
CheckBoxFor()
-使用视图模型(无论如何编辑数据时都必须使用该模型)
CheckBoxFor()
不接受可为
空的属性,谢谢您的输入。我创建了视图模型。