如何使用视图变量从视图中编码模型方法?
How to codel model method from view with View variables?
我需要在 ajax 上调用一个操作方法。它需要一个 int argument 。
对于 Ajax 的 url,我在模型中使用了 2 种方法。
CommonClass.CombineUrls(string1,string2) 结合 2 urls & CommonClass.GetRootPath() 得到应用程序根路径。
这是我的代码:
function GetDetails(ContactId) {
$.ajax({
async: true,
type: "POST",
dataType: "json",
url: "@CommonClass.CombineUrls(CommonClass.GetRootPath(), "Controller1/Method1/" + ContactId)",
success: function (data) {
alert("Name: " + data.FirstName);
}
});
}
"ContactId" 不适用于 url。因为,它将所有内容都视为服务器端代码。那么有什么方法可以结合服务器端和客户端代码吗?
你不能像那样在 Razor 中使用 JavaScript 变量,你必须做的是这样,使用 Url.Action
:
url: "@Url.Action("Method1", "Controller1")" + "?ContactId=" + ContactId
或者(更好):
url: "@Url.Action("Method1", "Controller1")",
data: { ContactId: ContactId }
如果 Url.Action
在您的方案中不是 possible/applicable,则使用您现有的函数,但仍使用 data
属性:
url: "@CommonClass.CombineUrls(CommonClass.GetRootPath(), "Controller1/Method1/")",
data: { ContactId: ContactId }
我需要在 ajax 上调用一个操作方法。它需要一个 int argument 。 对于 Ajax 的 url,我在模型中使用了 2 种方法。 CommonClass.CombineUrls(string1,string2) 结合 2 urls & CommonClass.GetRootPath() 得到应用程序根路径。 这是我的代码:
function GetDetails(ContactId) {
$.ajax({
async: true,
type: "POST",
dataType: "json",
url: "@CommonClass.CombineUrls(CommonClass.GetRootPath(), "Controller1/Method1/" + ContactId)",
success: function (data) {
alert("Name: " + data.FirstName);
}
});
}
"ContactId" 不适用于 url。因为,它将所有内容都视为服务器端代码。那么有什么方法可以结合服务器端和客户端代码吗?
你不能像那样在 Razor 中使用 JavaScript 变量,你必须做的是这样,使用 Url.Action
:
url: "@Url.Action("Method1", "Controller1")" + "?ContactId=" + ContactId
或者(更好):
url: "@Url.Action("Method1", "Controller1")",
data: { ContactId: ContactId }
如果 Url.Action
在您的方案中不是 possible/applicable,则使用您现有的函数,但仍使用 data
属性:
url: "@CommonClass.CombineUrls(CommonClass.GetRootPath(), "Controller1/Method1/")",
data: { ContactId: ContactId }