我有两个控制器, 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");
}
});
});
答案 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
代替。