Asp.Net MVC使用Tilde in href属性中的相对路径

Atc*_*oum 2 asp.net-mvc razor

使用MVC5和剃须刀。

情况1:

var url='~/path';
<a href='@url'>test</a>
Run Code Online (Sandbox Code Playgroud)

错误我得到:http : //www.example.com/~/path

情况#2

var url='/path';
<a href='~/@url'>test</a>
Run Code Online (Sandbox Code Playgroud)

正确,我知道:http : //www.example.com/path

有没有办法让剃须刀正确解释波浪号?换句话说,如果我绝对想像第一种情况那样在字符串中包含代字号,是否有办法使其工作?

has*_*san 6

您可以使用Url.Content()razor方法获取相对路径,如下所示。

@{
  var url="~/path";
}
<a href="@Url.Content(url)">test</a> // you will get http://www.example.com/path
Run Code Online (Sandbox Code Playgroud)