【问题标题】:How to send 3 params to a metod in js from MVC View?如何从 MVC 视图向 js 中的方法发送 3 个参数?
【发布时间】:2020-01-13 22:20:27
【问题描述】:

我需要从 Razor 视图向 js 方法发送 3 个参数:一个复选框、一个 int 和一个字符串:

HTML/Razor 代码:

<td><input type="checkbox" class="multi_checkbox" onclick="selected(this,@item.Id,@item.Status)"></td>

我的js方法

function selected(checkbox, id, status) {
if (checkbox.checked) {
        console.log("added: " + id);
        checkedRows.push(id);
    } else {
        console.log("deleted: " + id);
        for (var i = 0; i < checkedRows.length; i++) {
            if (checkedRows[i] === id) {
                checkedRows.splice(i, id);
            }
        }
    }
    console.log(checkedRows);
}

当我以这种方式工作时,它会抛出一个错误:

(index):1 Uncaught ReferenceError: Rejected is not defined at HTMLInputElement.onclick ((index):1)

Rejected@item.Status 的值,它是具有该值的字符串。

【问题讨论】:

  • 不太清楚你想要实现什么......我建议弄清楚你想要生成什么 JavaScript,然后确保 CSHTML 产生准确的 HTML+JavaScript......在这一点上只能猜测当你得到Rejected 时,你希望"Rejected" 作为参数......但这不清楚 - 请edit 发帖澄清。
  • 当我发送 3 个参数时它会抛出错误,但如果我使用 2 个参数(复选框和 Id)效果很好,我用它来评估所选项目中的状态是否相同(复选框在 td 内)。
  • 状态是字符串还是枚举?
  • 如果你把它改成单引号,它有没有做任何改变 - onclick='selected(this,@item.Id,@item.Status)'
  • 状态是一个字符串

标签: javascript c# asp.net-mvc razor


【解决方案1】:

请尝试此代码处理状态的字符串值。

<td><input type="checkbox" class="multi_checkbox" onclick="selected(this,@item.Id,'@item.Status')"></td>

请注意,现在'@item.Status' 有单引号,以便将其作为字符串传递。密切关注您在 JavaScript 中传递的不同数据类型,祝您好运!!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-16
    • 2015-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-18
    相关资源
    最近更新 更多