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

时间:2014-12-01 17:38:28

标签: javascript c# jquery ajax asp.net-mvc

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

现在我正在使用$.ajax调用从 V1 查看方法 M2 ,但我猜是 C2 / M2 的相对路径不是工作正常。

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

注意:
使用控制器 C1 呈现 V1 视图 这次电话有什么问题?

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);
    }
}

在{Package>'的 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");
           }
      });
});

1 个答案:

答案 0 :(得分:2)

您应MVC 永远 硬编码网址

而是使用@Url.Action

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

如果这没有解决您的问题,请告诉我们您遇到了什么样的错误。

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

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

最后一点,从{jQuery 1.8}开始,success已被弃用;你应该使用done代替。