Wil*_*lky 1 javascript jquery asp.net-mvc-3
任何人都可以告诉我为什么我在第二行上出现错误,说'意外字符串',但是当我直接在我的视图上时它正常工作(我使用的是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);
}
});
};
Run Code Online (Sandbox Code Playgroud)
因为你的url: "@Url.Action('GetProcessApprovers', 'Risk')",只在视图的上下文中执行,而不是在外部JS文件中执行.这是剃刀代码.
您需要以其他方式将URL传递给Javascript,可能作为函数的参数.
getUsers(processId, ajaxUrl)
Run Code Online (Sandbox Code Playgroud)
另一种方法是将HtmlHelper中的url写入视图中的数据属性,然后在Javascript中将其选中.
HTML
<div id="someContainer" data-url="@Url.Action('GetProcessApprovers', 'Risk')">...
Run Code Online (Sandbox Code Playgroud)
JS
var url = $("#someContainer").attr("data-url");