加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 如何测试MVC3 razor布局中是否存在变量?

发布时间:2020-12-16 07:28:22 所属栏目:asp.Net 来源:网络整理
导读:我只是用剃刀语法挖掘.NET视图.我的大部分编码知识都是用 javascript编写的,所以这可能是一个基本问题(或者我的方法完全错误!).在我的html中,我正在根据模板顶部声明的数组构建dns预取标记.也许我因为我的javascript背景而接近这个错误,但是如果我的一个视
我只是用剃刀语法挖掘.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;
}

解决方法

您可以检查值是否为null:

@{
  if (ViewBag.DNSPrefetch != null) {
    foreach (var dns in ViewBag.DNSPrefetch) {
      <link rel="dns-prefetch" href="//@dns" />
    }
  }
}

(或者,您可以在不需要时将DNSArray声明为空数组,然后您可以在所有情况下使用foreach块.)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读