2014-03-19 33 views
1

我正在開發asp.net mvc項目。我有一個JavaScript對象發送查詢控制器操作。在cshtml文件中,我可以使用@Url.Action("get", "product"),所以當我發佈網站時,url action是通過位置url進行渲染的。如果我發佈它,動作url就是這樣的http://localhost/App1/product/get或者我可以發佈另一個目錄,如http://localhost/App2/等等。在javascript代碼和IIS中的asp.net mvc url操作發佈

但我有一個JavaScript代碼的問題。

sample.js

function query(){ 
    var url = "/product/get"; 

    // send query this url 
} 

當我發佈在網址(APP1文件夾)項目,JavaScript的查詢發送請求http://localhost/product/get,但它應該是這樣的http://localhost/App1/product/get

我可以不要使用@Url.action()剃刀表達。我該如何解決這個問題?

+0

你如何使用'查詢()'? – Satpal

+0

如果它是mvc 4應用程序,爲什麼不能使用@ Url.action()razor表達式? –

回答

1

您可以將根級別appPath變量在_layout.cshtml

<script type="text/javascript"> 
    var appPath = @Url.Content("~/"); 
</script> 

然後在查詢

function query(){ 
    var url = appPath +"/product/get"; 
} 
1

我髮網址從查看到這是寫在JavaScript函數參數一個js文件。這爲您節省了在js中創建url的麻煩,並且您可以使用剃刀表達式來實現相同效果。

所以你的函數變爲: -

function query(url){ 
//var url = "/product/get"; 
// send query this url 
} 
相關問題