【问题标题】:Setting a onclick event to a c# URL Action in javascript?在javascript中将onclick事件设置为c# URL Action?
【发布时间】:2020-04-26 12:20:52
【问题描述】:

在我看来,我有一个复选框输入如下:

<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 })'')
   }
}

任何帮助将不胜感激。

【问题讨论】:

    标签: javascript jquery asp.net asp.net-mvc


    【解决方案1】:

    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 无效,末尾有多个连续的单引号。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-11
      相关资源
      最近更新 更多