Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# JS don'中的Url.Action;行不通_C#_Javascript_Asp.net_Razor - Fatal编程技术网

C# JS don'中的Url.Action;行不通

C# JS don'中的Url.Action;行不通,c#,javascript,asp.net,razor,C#,Javascript,Asp.net,Razor,在互联网上,我在JS中发现了许多类似这样的代码示例: window.location.href = "@Url.Action('Index', 'Home')"; 人们在javascript代码中使用HTML助手,例如,请参见。 但当我想这样做时,我会得到一个简单的字符串: http://localhost:28832/@Url.Action('Index',%20'Home') 为什么我的HTML助手没有被处理?razor语法对视图有效。如果您的JS代码嵌入到视图中,它就会工作。如果您将J

在互联网上,我在JS中发现了许多类似这样的代码示例:

window.location.href = "@Url.Action('Index', 'Home')";
人们在javascript代码中使用HTML助手,例如,请参见。 但当我想这样做时,我会得到一个简单的字符串:

http://localhost:28832/@Url.Action('Index',%20'Home')

为什么我的HTML助手没有被处理?

razor语法对视图有效。如果您的JS代码嵌入到视图中,它就会工作。如果您将JS代码保存在外部文件中,则不要期望它能够工作

如果您想一想js文件是如何提供的,razor引擎永远不会处理它们,它们只是资源。我不知道是否有办法向razor引擎添加js支持

我使用以下解决方法: 当我在JS文件上需要一些动态(razor)内容时,我要做的是声明一个函数,并将内容作为函数的参数。然后我从视图文件调用函数,并将razor语句作为参数传递。在您的情况下,这可能类似于:

JS文件:

function foo(link){
    window.location.href = link;
}
查看文件

<script>
    foo("@Url.Action('Index', 'Home')");
</script>

foo(@Url.Action('Index','Home');
编辑:
类似的问题有很好的答案,如果这个解决方案不够,请尝试一下。

你需要通过razor Engine获得JS文件。我使用bindle获得它,如下所示:
@Scripts.Render(“~/bundles/Account/Register”)
你的意思是这样的吗?我的意思是这样的:好,但是有没有JS库可以获得simular机会,或者我必须自己纠正它?@RustamSalahutdinov我不知道如何将这种行为归档到外部文件中。我所做的是在外部声明函数,但在视图文件内部使用razor语句的参数进行调用