我已经实施了一个简单的支付网关,支付网址中包含@
,如下所示:
<a href="https://www.somegateway.com/@john_doe/" class="im-checkout-btn btn--light" target="_blank" rel="modal">Checkout With someGateway</a>
这是一个ASP.NET MVC Web应用程序,因此该视图是Razor视图引擎,并且它不接受href中的@
,它给了我:
CS0103:当前上下文中不存在名称“john_doe”
但是当我只是创建一个html页面并使用上面的代码时它起作用,它只是在剃刀视图中不起作用。我哪里错了?
答案 0 :(得分:2)
您需要使用@@代替在剃须刀中转义@字符。但是,尽管有文档,但这并不是在链接内部一直有效。
写这样的链接应该有效!
<a href="https://www.somegateway.com/@("@john_doe")/" class="im-checkout-btn btn--light" target="_blank" rel="modal">Checkout With someGateway</a>
或者
<a href="https://www.somegateway.com/@Html.Raw('@')john_doe/" class="im-checkout-btn btn--light" target="_blank" rel="modal">Checkout With someGateway</a>
如果一切都失败了,你可以做到
@{ var url = "https://www.somegateway.com/@john_doe/"; }
然后
<a href="@url" class="im-checkout-btn btn--light" target="_blank" rel="modal">Checkout With someGateway</a>
答案 1 :(得分:0)
您可以将url放在变量中,然后使用:
[1,2]>>=return
[1,2] >>=return
甚至没有变量:
@{
var url = "...";
}
<a href="@Html.Raw(url)">...</a>