kmg*_*mgt 2 .net c# asp.net-mvc razor
我有一个 razor 模板 index.cshtml 并希望在变量中存储一些 HTML 标记:
@{
var markup = @"<img src=""~/images/image.png"">";
}
Run Code Online (Sandbox Code Playgroud)
现在我想通过 @Html.Raw() 在页面上的任何位置显示它。
<div>
@Html.Raw(markup)
</div>
Run Code Online (Sandbox Code Playgroud)
波形符 (~) 将按预期显示为字符,而不是根路径。所以客户端将无法加载这个错误的图像源~/images/image.png。
是否有可能获得变量中引用或转换的正确路径,就像直接在该视图模板中写入标记时的行为一样?
您可以像这样使用Url.Content方法:
var markup = $@"<img src=""{Url.Content("~/images/image.png")}"">";
Run Code Online (Sandbox Code Playgroud)
或者,如果您更喜欢使用string.Format而不是$:
var markup = string.Format(@"<img src=""{0}"">", Url.Content("~/images/image.png"));
Run Code Online (Sandbox Code Playgroud)
这会将“~/images/image.png”转换为应用程序绝对路径,因此实际输出将类似于
<img src="/images/image.png">
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1629 次 |
| 最近记录: |