我只是在使用 razor 语法深入研究 .NET 视图。我的大部分编码知识都在 javascript 中,所以这可能是一个基本问题(或者我的方法完全错误!)。在我的 html 中,我正在构建基于模板顶部声明的数组的 dns 预取标签。也许由于我的 javascript 背景,我正在接近这个错误,但如果我的一个视图不需要任何预取标签,我想避免声明 DNSPrefetch 变量。
如何测试变量是否存在,然后根据结果执行一些代码?我使用 try/catch 让它工作,但我认为有更好的方法。谢谢!
在 _Layout 中(使用 try/catch):
@{
try {
foreach (var dns in ViewBag.DNSPrefetch) {
<link rel="dns-prefetch" href="//@dns" />
}
}
catch{}
}
在模板中:
@{
Layout = "~/Views/Shared/_Layout.cshtml";
// DNS prefetching for improved performance. More reading: http://html5boilerplate.com/docs/DNS-Prefetching/
string[] DNSArray = { "ajax.googleapis.com", "mpsnare.iesnare.com" };
ViewBag.DNSPrefetch = DNSArray;
}