Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.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
Asp.net mvc 你如何摆脱'@';带有razor的url中的符号_Asp.net Mvc_Razor_Escaping_Umbraco_Razorengine - Fatal编程技术网

Asp.net mvc 你如何摆脱'@';带有razor的url中的符号

Asp.net mvc 你如何摆脱'@';带有razor的url中的符号,asp.net-mvc,razor,escaping,umbraco,razorengine,Asp.net Mvc,Razor,Escaping,Umbraco,Razorengine,我知道这很可能会是一件非常简单的事情,就像我还没有得到的“抓住你”一样;然而,我一直在努力摆脱以下URL中的@符号 <a href="https://www.google.co.uk/maps/place/XXXXXXXXXXXXXXXX/@55.000000,-1.000000,17z/data=!3m1!4b1!4m2!3m1!1s0x487e736c74d13649:0xe560f3b38693aec3">View on Google Maps</a> 然而,这产

我知道这很可能会是一件非常简单的事情,就像我还没有得到的“抓住你”一样;然而,我一直在努力摆脱以下URL中的
@
符号

<a href="https://www.google.co.uk/maps/place/XXXXXXXXXXXXXXXX/@55.000000,-1.000000,17z/data=!3m1!4b1!4m2!3m1!1s0x487e736c74d13649:0xe560f3b38693aec3">View on Google Maps</a>
然而,这产生了下面的YSOD

我遗漏了什么?

尝试使用
&64而不是实际的@

<a href="https://www.google.co.uk/maps/place/XXXXXXXXXXXXXXXX/&#64;55.000000,-1.000000,17z/data=!3m1!4b1!4m2!3m1!1s0x487e736c74d13649:0xe560f3b38693aec3">View on Google Maps</a>


我想知道为什么没有人建议对
@
使用url编码字符
%40

<a href="https://www.google.co.uk/maps/place/XXXXXXXXXXXXXXXX/%4055.000000,-1.000000,17z/data=!3m1!4b1!4m2!3m1!1s0x487e736c74d13649:0xe560f3b38693aec3">View on Google Maps</a>

对我来说这很有效

我找到了另一种(在某些情况下可能更好)方法来逃避razor模板中的符号

在我的用例中,我有一个部分with资产,它应该被一个grunt任务替换。引用作用域npm包时,路径字符串中有一个
@

@using Foo.Bar.Helpers

@{ 
    var somescope = "@somescope";
}

@Html.RegisterAssetBlock(
    content: @<text>
        <!-- build:js /assets/js/bundle.js -->
        <script src="/node_modules/@somescope/somepackage/dist/main.js" type="text/javascript"></script>
        <!--endbuild-->
    </text>
)
@使用Foo.Bar.Helpers
@{ 
var somescope=“@somescope”;
}
@Html.registerasetblock(
内容:@
)
因此,在每种情况下,都有正确的字符串(client编译时和server编译时)

对于您的情况,这意味着:

@using Foo.Bar.Helpers

@{
    var location = "@55.000000,-1.000000";
}

<a href="https://www.google.co.uk/maps/place/XXXXXXXXXXXXXXXX/@(location),17z/data=!3m1!4b1!4m2!3m1!1s0x487e736c74d13649:0xe560f3b38693aec3">View on Google Maps</a>
@使用Foo.Bar.Helpers
@{
var location=“@55.000000,-1.000000”;
}
另一种方式:

<a href="https://www.google.co.uk/maps/place/XXXXXXXXXXXXXXXX/@("@55.000000,-1.000000"),17z/data=!3m1!4b1!4m2!3m1!1s0x487e736c74d13649:0xe560f3b38693aec3">View on Google Maps</a>


可能重复@pbjork answer@;工作;%40没有,对于.cshtml页面中标记中的此URL:
<a href="https://www.google.co.uk/maps/place/XXXXXXXXXXXXXXXX/@("@55.000000,-1.000000"),17z/data=!3m1!4b1!4m2!3m1!1s0x487e736c74d13649:0xe560f3b38693aec3">View on Google Maps</a>
<a href="https://www.google.co.uk/maps/place/XXXXXXXXXXXXXXXX/@("@")55.000000,-1.000000,17z/data=!3m1!4b1!4m2!3m1!1s0x487e736c74d13649:0xe560f3b38693aec3">View on Google Maps</a>