asp.net mvc ajax从不同的页面调用相同的函数

本文关键字:调用 函数 net ajax asp mvc | 更新日期: 2023-09-27 18:16:16

如何使用ajax从不同的页面调用相同的操作?

type: 'POST',
  url: 'Notification/GetRecentNotifications/'

我目前正在使用上面的代码来调用我的操作。它适用于我的应用程序的主页,但当我切换到其他页面时,这不起作用。有人能给我一个解决办法吗?谢谢。

asp.net mvc ajax从不同的页面调用相同的函数

我通常是这样做的指向哪个控制器&在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方法,您可能应该将其放在一个局部视图中,并从需要它的每个视图中引用它。