2012-12-17 66 views
0

我嘗試了所有的努力,但無法理解錯誤在哪裏。我也搜索了谷歌,但沒有找到任何好的解決方案。它實際上並沒有在mvc中調用控制器/動作。項目的其他部分也一樣。Jquery調用MVC的控制器:ReferenceError:url沒有定義

我在「MVC」文件夾下有一個控制器「RB」,動作定義爲「SS」。 ,我射擊從我的JavaScript文件下面的代碼:

var sSch = function (request, response) { 
     var t = request.RF.substring(0, 1); 
     var d = new Date(request.RNR);    
     $.ajax({ 
      url: "/MVC/RB/SS", 
      type: "POST", 
      dataType: "json", 
      data: { 
       _rId: request.ReportId, 
       _date: d.toString(), 
       _fcy: t 
      }, 
      success: function (data) { 
       alert('Success'); 

      }, 
      error: function (data) { 
       alert('Error'); 

      } 
     }); 
    }; 

我調用此函數的onClick按鈕和請求變量得到正確的價值觀,但它不無論如何呼叫控制器/動作出現。 在我測試過的firebug上拋出異常「ReferenceError:url is not defined」。我在VS 2010下使用MVC3。

請幫忙。

+0

這段代碼似乎沒有任何問題。你確定這是錯誤發生的地方嗎? –

+0

建立你的解決方案,並再試一次 –

回答

0

你必須正確定義,而不是

url: "/MVC/RB/SS", 

使用

url: @Url.Action("SS", "RB") 
+0

如果你的腳本是在一個單獨的文件中,你應該把'@ Url.Action(「SS」,「RB」)'的結果放到一個隱藏字段或數據屬性你的看法。這樣你就可以在腳本中找到它。 – Nope

+0

嗨,我嘗試了以下:url:「@Action('/ MVC/RB/SS')」,返回相同的錯誤.... –

0

對你有「MVC/RB/SS」這是相對於當前目錄快速測試的網址你的行動根據網頁結構中網頁的深度,可以放入網址:「../MVC/RB/SS」或網址:「../../MVC/RB/SS」。

另一種方法是嘗試這樣的:

url: "@Action("/MVC/RB/SS")", 

這將在正確的級別爲您創建正確的URL,應該接走。

+0

他使用絕對URL –

+0

嗨,我試過以下內容:url: @Action('/ MVC/RB/SS')「,返回相同的錯誤 –

+0

我嘗試使用ref url也像var urlaction = AP.rootDir +」RB/SS「;然後我通過它作爲url:urlaction,結果是一樣的。儘管urlaction返回「/ mvc/RB/SS」 –

0

試試這個:

url: "~/MVC/RB/SS", 

這將解析爲路徑的 「http://站點名稱/ MVC/RB/SS」。

Firebug說什麼?