2010-08-09 92 views
1

我有一個奇怪的問題。我使用「LoadMyPageController」加載了一個頁面,並且有一個可用於提交頁面的ajax_submit_button1。asp.net mvc預期控制器和操作未被調用

還有另一個ajax_submit_button2來打印頁面。該按鈕將整個頁面的視圖模型提交給具有「PrintData」操作的「PrintController」。現在

當我打的「ajax_submit_button2」,我PrintController.PrintData不會被調用。相反,當我檢查我的Fiddler工具的要求作出

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

這是一個無效的URL。

我有我的池莉構建在ajax_submit_button2這樣一種方式,它應該調用

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

但我不知道爲什麼LoadMyPage控制器出現在我的網址。

任何想法或意見,將不勝感激。無論如何,asp.net.net MVC會決定,如果因任何原因無法找到控制器操作,它將自行採用默認控制器。

該代碼是一種緊密耦合,所以不能發佈它。我想知道是否有人遇到過這樣的問題。

+0

也許只是張貼你的代碼,構造URL使用您的AJAX打印操作的一部分。這 – Jaime 2010-08-09 21:28:24

+0

你能至少說明你使用重定向ajax_submit_button2張貼到不同的控制器/動作的方法是什麼?這是通過MVC中的Html命名空間中的東西來完成的,還是直接使用javascript?無論你在做什麼,產生這種形式重定向的代碼都會做一些錯誤的事情。 – 2010-08-09 21:30:00

+0

@Ryan - 正如你所說,這是一個問題。我糾正了它。謝謝!!!! – SARAVAN 2010-08-11 18:10:40

回答

0

這與服務器上的路由無關,因爲客戶端發出的請求在其中有錯誤的控制器。我懷疑你的代碼生成提交按鈕的URL是不正確的 - 即沒有指定要使用的控制器 - 或者你有一個實際被調用的提交按鈕的表單,而不是(或除了)ajax代碼。請注意,如果您的提交處理程序未返回false,則將調用默認表單操作並正常提交表單。如果您確實有表單,請確保其上的url正確,並且您的提交處理程序返回false。

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