2017-08-11 35 views
-1

代碼看起來如下:是否可以將動作名稱作爲參數傳遞給@ Url.Action?

<script type="text/javascript"> 
    function Hello() { 
     var name = DevExpressUtility.getSelectedItem(); 
     var url = '@Url.Action(' + name + ', "Home")'; 
     //alert(name); 
     //window.open("../../Views/Home/DisplaySchema9.cshtml", "_blank", "titlebar=no,location=no,toolbar=no,scrollbars=no,resizable=no,fullscreen=yes"); 
     window.open(url, "_blank", "titlebar=no,toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no,fullscreen=yes"); 
    } 
</script> 

有錯誤信息 - 無法識別的轉義序列。

+2

否....你正在嘗試評估服務器端函數中的客戶端變量。 – charlietfl

+0

好的。謝謝。那麼使用window.open怎麼樣?我如何設置路徑到選定的視圖? – tesicg

回答

0

不是。

看起來像你有name這是計算客戶端,但你相信服務器將拿起當前值,並以某種方式重新評估每次客戶端上的一些變化時的url?

它不會那樣工作。

其中一種解決方法是不依賴於@Url.Action,但考慮您當前的路由並硬編碼實際路徑。假設你有默認路由,它應該如此簡單

var url = '/Home/' + name; 
+0

它無法找到.cshtml文件的資源。路徑如下:site_name/Views/Home/ .cshtml。 – tesicg

+0

這將是完全錯誤的,'cshtml'文件**不**可與HTTP路由。 'Url.Action'總是返回'/ controller/action'形式的uris。 –

+0

我只是想在新窗口中打開查看文件。怎麼做? – tesicg

相關問題