asp.net mvc期望控制器和动作不被调用

时间:2010-08-09 21:22:06

标签: asp.net asp.net-mvc

我有一个奇怪的问题。我使用“LoadMyPageController”加载了一个页面,并且有一个可以用来提交页面的ajax_submit_button1。

还有另一个ajax_submit_button2来打印页面。此按钮将页面的视图模型作为一个整体提交给具有“PrintData”操作的“PrintController”。

现在当我点击“ajax_submit_button2”时,我的PrintController.PrintData没有被调用。相反,当我检查我的小提琴工具时,请求是

http://localhost:18484/LoadMyPage/PrintData?Length=14

这是一个无效的网址。

我以一种应该调用的方式构建了我的ajax_submit_button2

http://localhost:18484/Print/PrintData?Length=14

但我不知道为什么我的网址中存在LoadMyPage控制器。

任何想法或意见将不胜感激。 asp .net MVC决定如果由于任何原因无法找到控制器动作,它将自行选择一个默认控制器。

代码是一种紧密耦合,所以无法发布。我想知道是否有人遇到过这样的问题。

1 个答案:

答案 0 :(得分:0)

这与服务器上的路由无关,因为客户端发出的请求中包含错误的控制器。我怀疑你的代码生成提交按钮的url是不正确的 - 即,没有指定要使用的控制器 - 或者你有一个实际被调用的提交按钮周围的表单(或者除了)ajax代码。请注意,如果您的提交处理程序未返回false,则将调用默认表单操作并正常提交表单。如果您有表单,请确保其上的URL正确并且您的提交处理程序返回false。

   $('#printForm').submit( function() {
        $.ajax({
            url: $(this).attr('action'),
            ...
        });
        return false; // this is important!
   });