Javascript 将模型值传递给@Html.CheckBoxFor on click函数

Javascript 将模型值传递给@Html.CheckBoxFor on click函数,javascript,c#,asp.net-mvc,Javascript,C#,Asp.net Mvc,我需要将模型值传递到@Html.CheckBoxFor on click函数 这是我的密码 @Html.CheckBoxFor(m => m.itemCategoryList[i].addItem, new { @onclick = "showImages(Model.itemCategoryList[i].ItemID)" }) 但是它得到了Javascript错误,它说, 模型没有定义。 那么如何解决它呢?Model.itemCategoryList[i].ItemID是您的MV

我需要将模型值传递到@Html.CheckBoxFor on click函数

这是我的密码

  @Html.CheckBoxFor(m => m.itemCategoryList[i].addItem, new { @onclick = "showImages(Model.itemCategoryList[i].ItemID)" })
但是它得到了Javascript错误,它说, 模型没有定义。
那么如何解决它呢?

Model.itemCategoryList[i].ItemID
是您的MVC模型,您需要在代码中正确格式化它。可以使用
string.Format
执行此操作。改变

@Html.CheckBoxFor(m => m.itemCategoryList[i].addItem, new { @onclick = "showImages(Model.itemCategoryList[i].ItemID)" })


这将强制对代码进行求值

只需在括号周围添加单引号,例如“{0}”,tat将其转换为字符串,并且不会给出非法字符错误

@Html.CheckBoxFor(m => m.itemCategoryList[i].addItem, new { onclick = string.Format("showImages('{0}')", Model.itemCategoryList[i].ItemID) })

显示您的javascript。但是,使用不引人注目的javascript比在标记中添加行为要好得多,因为我们知道HTML是如何在DOM上生成的
@Html.CheckBoxFor(m => m.itemCategoryList[i].addItem, new { onclick = string.Format("showImages('{0}')", Model.itemCategoryList[i].ItemID) })