2017-08-11 82 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

相关问题