1. @Href("~/")
~代表网站根目录。
@Href("~/")Code language: JavaScript (javascript)
输出网站根目录路径 /。
用于拼接链接、css、js、图片地址,避免页面在不同层级下路径出错。
2. @Html.Raw()
Razor默认会自动HTML编码,把< > &等符号转义成普通文本。
@Html.Raw(内容):不做转义,直接输出原始HTML标签。
示例:
@* 会渲染红色文字 *@
@Html.Raw(@"<font color='red'>红字</font>")
@* 不加Raw:直接把标签当成字符串原样显示到页面,不会渲染红色字体 *@
@("<font color='red'>红色文字</font>")Code language: HTML, XML (xml)
安全提醒:如果内容来自用户输入,不要直接用
Html.Raw,会产生XSS注入漏洞。
3. Views文件夹下的 web.config
Views/web.config 是视图专用配置文件。
里面的 <namespaces> 节点,给全部cshtml视图批量导入命名空间,不需要每个页面写@using。
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Optimization"/>
<add namespace="System.Web.Routing" />
</namespaces>
</pages>
</system.web.webPages.razor>Code language: HTML, XML (xml)
要点:
- 在这里
<add namespace="xxx"/>添加命名空间,所有视图生效。 - 修改此配置后,需要重启Visual Studio,智能提示才会刷新。
- 这是ASP.NET MVC5的配置;ASP.NET Core已经不再使用这套web.config配置。
示例
@{
string htmlStr = "<font color='blue'>蓝色文字</font>";
}
根目录:@Href("~/")
@* 渲染html *@
@Html.Raw(htmlStr)
@* 转义,原样输出标签字符串 *@
@htmlStrCode language: HTML, XML (xml)
ASP.NET Core写法
- 根路径:
@Url.Content("~/") - 输出原始html:
@Html.Raw()仍然可用 - 批量命名空间:在
_ViewImports.cshtml添加@using xxx,不再依靠web.config。