如果View是从其他Controller创建的,您可以从Controller调用方法吗?

时间:2009-06-24 03:23:38

标签: asp.net-mvc ajax jquery controllers

说我从HomeController调用了Index(),它返回了视图Index.aspx,可以在index.aspx上的javascript jquery ajax调用另一个控制器中的方法(ExternalController)吗?

$.ajax({
            type: "POST",
            url: "/Home/sayHi",
            dataType: "json",
            data:({ currRow : centerPost[0], offset : ((-1 * Math.ceil(numRows / 2)) + 1) }),
            error:function(request){alert(request.statusText)},
            success:function(result){alert(result)}
        }).responseText;

没有给我任何错误,页面是从HomeController呈现的

$.ajax({
            type: "POST",
            url: "/Row/getRowName",
            dataType: "json",
            data:({ currRow : centerPost[0], offset : ((-1 * Math.ceil(numRows / 2)) + 1) }),
            error:function(request){alert(request.statusText)},
            success:function(result){alert(result)}
        }).responseText;

给了我一个内部服务器错误...

只是想知道是否可能因为我正在调用一个不同的控制器而不是从

呈现View的控制器

1 个答案:

答案 0 :(得分:2)

为什么调用与呈现当前视图的控制器不同的控制器会导致任何类型的错误,应该没有任何理由。控制器只是一组通用命令的处理程序。这些命令是由浏览器的地址栏,超链接还是通过jQuery ajax调用发出的并不重要。这三个都使用相同的协议向控制器发出命令。

我的猜测是您的代码出现了导致内部服务器错误的问题。您是否尝试直接在浏览器中访问/ Row / getRowName以查看会发生什么?它是否适用于GET和POST,只有POST,只有GET?当只支持GET时,你是否正在发布POST?在我能够帮助你之前,我需要更多的信息。