1

谁能告诉我为什么我在第二行得到一个错误,说“意外的字符串”,但是当我直接在我的视图上看到它时工作正常(我使用的是 MVC 3,并不是说它有什么不同):

function getUsers(processId) {
    $.ajax({
        url: "@Url.Action('GetProcessApprovers', 'Risk')",
        data: { processId: processId },
        dataType: "json",
        type: "POST",
        error: function () {
            alert("An error occurred.");
        },
        success: function (data) {
            var items = "<option value=\"\">-- Please select --</option>"

            if (data != "") {
                $.each(data, function (i, item) {
                    items += "<option value=\"" + item.Value + "\">" + item.Text + "</option>";
                });
            }

            $("#ProcessOwnerId").html(items);
        }
    });
};
4

2 回答 2

5

因为您的url: "@Url.Action('GetProcessApprovers', 'Risk')", 仅在视图的上下文中执行,而不是在外部 JS 文件中。这是剃须刀代码。

您需要以其他方式将 url 传递给 Javascript,可能作为函数的参数。

getUsers(processId, ajaxUrl)

另一种方法是将 HtmlHelper 中的 url 写到视图中的数据属性中,然后在 Javascript 中提取它。

HTML

<div id="someContainer" data-url="@Url.Action('GetProcessApprovers', 'Risk')">...

JS

var url = $("#someContainer").attr("data-url");

于 2013-10-11T10:49:18.387 回答
1

您的 url 参数有问题。请像这样更改它:

 url: '@Url.Action("GetProcessApprovers", "Risk")',

希望它有效

于 2013-10-11T10:52:20.523 回答