用javascript将onclick事件设置为c#URL操作



在我的视图中,我有一个复选框输入,如下所示:

<input type="checkbox" data-toggle="modal" data-target="#CheckItemsModal" id="@item.ItemId" onclick="location.href = '@Url.Action("CheckedItem", "List", new { id = item.ItemId })'; Checked(this.id)" />

我正在尝试对复选框的选中和取消选中进行模式确认,但这意味着我的URL操作需要移动到模式的按钮,同时仍然保留id = item.ItemId,所以我的计划是让我们用javascript来做这件事,但我不确定如何正确分配模式按钮的onclick事件。

这就是我到目前为止所看到的(它抛出的错误是url操作中的checkId在当前上下文中不存在(:

function Checked(checkId) {
if ($(checkId).Checked == true) {
$(modalButton).setAttribute('onclick','location.href = '@Url.Action("CheckedItem", "List", new { id = checkId })'')
}
}

任何帮助都将不胜感激。

C#在服务器上运行,JavaScript在浏览器中运行。您的URL.Action在不存在checkId变量的服务器上执行。您需要在onclick方法中从纯JavaScript生成url,或者提前使用url.Action为所有复选框生成链接。

另一种选择是在JavaScript onclick方法中使用字符串替换。例如:

location.href = '@Url.Action("CheckedItem", "List", new { id = "_REPLACE_ID_" })'.replace( "_REPLACE_ID_", checkId);

查看生成的HTML源代码,看看会发生什么。

你还需要小心你的报价。在您的代码中,您的JavaScript无效,末尾有多个连续的单引号。

最新更新