我有一个奇怪的问题。我使用“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决定如果由于任何原因无法找到控制器动作,它将自行选择一个默认控制器。
代码是一种紧密耦合,所以无法发布。我想知道是否有人遇到过这样的问题。
答案 0 :(得分:0)
这与服务器上的路由无关,因为客户端发出的请求中包含错误的控制器。我怀疑你的代码生成提交按钮的url是不正确的 - 即,没有指定要使用的控制器 - 或者你有一个实际被调用的提交按钮周围的表单(或者除了)ajax代码。请注意,如果您的提交处理程序未返回false,则将调用默认表单操作并正常提交表单。如果您有表单,请确保其上的URL正确并且您的提交处理程序返回false。
$('#printForm').submit( function() {
$.ajax({
url: $(this).attr('action'),
...
});
return false; // this is important!
});