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

asp.net-mvc-3 – Razor View引擎中的全局变量

发布时间:2020-12-16 07:09:32 所属栏目:asp.Net 来源:网络整理
导读:有没有办法让我在Spark View引擎中使用类似于 Global Variables的功能,但是对于Razor. 它的全部意义在于能够在一个部分中为标题定义变量,然后能够在另一个部分中设置或更改该变量的值. 在Spark中,您将在类似于此类的部分中创建变量(出于示例目的,不完整的代
有没有办法让我在Spark View引擎中使用类似于 Global Variables的功能,但是对于Razor.

它的全部意义在于能够在一个部分中为标题定义变量,然后能够在另一个部分中设置或更改该变量的值.

在Spark中,您将在类似于此类的部分中创建变量(出于示例目的,不完整的代码):

<html>
  <head>
    <global type='string' Title='"Site Name"'/>
    <title>${Title}</title>
  </head>
  <body>
    <div><use content="view"/></div>
  </body>
</html>

然后你可以在不同的视图或部分或其他任何地方设置它:

<set Title='product.Name + " - " + Title'/>

如果我采用错误的方法,我如何在Razor中做这样的事情或者只是解决类似的问题?

解决方法

您可以在布局中使用ViewBag.Title:

<html>
  <head>
    <title>@ViewBag.Title - Site Name</title>
  </head>
  <body>
    <div>
        @RenderBody()
    </div>
  </body>
</html>

然后在视图中定义此变量:

@model AppName.Models.Product
@{
    ViewBag.Title = Model.Name;
}

更新:

关于默认值的评论问题,您可以使用部分.

<html>
  <head>
    <title>
    @if (IsSectionDefined("Title"))
    {
        RenderSection("Title")
    }
    else 
    {
        <text>Some default title</text>
    }
    </title>
  </head>
  <body>
    <div>
        @RenderBody()
    </div>
  </body>
</html>

然后在您的视图中,您可以重新定义该部分,如果您将:

@section Title {
    <text>some redefined title here</text>
}

(编辑:李大同)

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

    推荐文章
      热点阅读