![](/img/trans.png)
[英]How to call an Action method using ajax for a button click which is in partial view in MVC?
[英]How to call partial view using ajax method from jQuery
我使用asp.net
,但asp.net
一些问题。
我创建了带有错误消息的部分视图,我想使用jQuery
调用视图。
我已经在controller
中创建了返回局部视图的function
。 但是我一直被 ajax 困住,我总是遇到错误。
控制器:
[HttpGet]
public ActionResult LoadPartialView()
{
return PartialView("_ErrorMessageWindow");
}
jQuery:
$.ajax({
url: "@(Url.Action('LoadPartialView'))",
type: "GET",
cache: false,
datatype: 'html',
success: function (data) {
}
});
错误:
jquery-3.3.1.min.js:2 GET https://localhost:5001/@(Url.Action ('LoadPartialView'))?_=1565937416181 404(未找到)
不工作的原因:
@Url.Action()
是 Razor 服务器端代码,不会在外部.js
文件中解析。
解决方案:
在你的.cshtml
创建这个<div>
:
<div id="partial-view-url" data-request-url="@Url.Action("LoadPartialView", "ControllerName")"></div>
然后使用如下所示的data-request-url
在您的单独/外部.js
文件中获取部分视图data-request-url
:
$("#partial-view-url").data('data-request-url');
所以你的$.Ajax
会变成这样:
$.ajax({
url: $("#partial-view-url").data('data-request-url'),
type: "GET",
cache: false,
datatype: 'html',
success: function (data) {
}
});
另一种方法是声明全局变量:在主.cshtml
文件中创建全局变量并在外部.js
文件中使用它。
//Declare this variable in your main `.cshtml` file.
var partial-view-url = @Url.Action("LoadPartialView","ControllerName");
//and then use it in your separate/external `.js` file.
$.ajax({
url: partial-view-url,
type: "GET",
cache: false,
datatype: 'html',
success: function (data) {
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.