asp.net mvc ajax从不同的页面调用相同的函数
本文关键字:调用 函数 net ajax asp mvc | 更新日期: 2023-09-27 18:16:16
如何使用ajax从不同的页面调用相同的操作?
type: 'POST',
url: 'Notification/GetRecentNotifications/'
我目前正在使用上面的代码来调用我的操作。它适用于我的应用程序的主页,但当我切换到其他页面时,这不起作用。有人能给我一个解决办法吗?谢谢。
我通常是这样做的指向哪个控制器&在ajax jquery调用中调用的动作…
$.ajax({
type: "POST",
url: '@(Url.Action("Action", "Controller"))',
success: function (data) {
}
});
使用Url.Action()
建立链接
将代码放入脚本目录中的ajax.js
文件中,然后在需要使用该文件中的方法的页面中引用它。然后,将ajax调用的任何服务器端逻辑放在AjaxController
中,例如:
ajax.js
function foo() {
var model = { };
$.ajax({
url: '@Url.Action("Foo", "Ajax")',
type: "POST",
data: JSON.stringify(model),
success: function(data) {
alert(data);
},
error: function(data) {
alert(data);
}
});
}
AjaxController.cs
public class AjaxController : Controller
{
[HttpPost]
public JsonResult Foo(FooModel model)
{
string message = _ajaxService.Foo(model);
return Json(message);
}
}
在上面的示例中,_ajaxService
是一个服务层对象,它包含处理ajax请求的逻辑。下面是如何在视图中使用该函数:
SomeView.cshtml
<script type="text/javascript" language="javascript" src="@Url.Content("~/Content/Scripts/ajax.js")"></script>
<script type="text/javascript" language="javascript">
$(document).ready(function () {
$('#button').click(foo);
});
</script>
如果有额外的逻辑将数据传递给重用的ajax方法,您可能应该将其放在一个局部视图中,并从需要它的每个视图中引用它。