使用 jQuery $.ajax 调用另一个控件的操作

Call action of another control using jQuery $.ajax

本文关键字:控件 操作 另一个 调用 jQuery ajax 使用      更新时间:2023-09-26

我有两个控制器,C1C2
C2 有一个名为 M2 的方法,它返回一个JsonResult

现在我使用调用$.ajax从视图 V2 调用方法 M1,但我想 C2/M2 的相对路径无法正常工作。

$.ajax({
         type: "GET",
         url: "/C2/M2",
         success: function (data) {
             alert(data);
         }
});

通知:
视图 V1 使用控制器 C1

渲染这个电话有什么问题?

public class C1 : Controller
{
    public ActionResult Package(object Id)
    {
        return View("PackageO");
    }
}
public class C2: Controller
{
    public JsonResult SelectAll()
    {
        return Json(_rep.SelectAll(), JsonRequestBehavior.AllowGet);
    }
}

在视图"PackageO"中的jQuery ready()下,我正在使用IIFE

$(function () {
      var resultant = "";
      $.ajax({
           type: "GET",
           url: "./C2/SelectAll",
           //url: "@Url.Action('SelectAll', 'C2')",
           done: function (data) {
                alert("success");
           },
           fail: function (ex) {
                alert("fail");
           }
      });
});

你永远不应该在 MVC硬编码 URL

请改用@Url.Action .

url: '@Url.Action("FunctionName", "ControllerName")',

如果这不能解决您的问题,请告诉我们您遇到的错误类型。

此外,为了您的理智,请使用 fail 方法。

$.ajax("http://url")
    .done(function() {
    alert("success");
})
    .fail(function() {
    alert("error");
})

最后一点,success从jQuery 1.8开始被弃用;你应该改用done