【问题标题】:IF URL = xxx then show text in cshtml mvc如果 URL = xxx 然后在 cshtml mvc 中显示文本
【发布时间】:2017-07-30 07:26:20
【问题描述】:

我有两个带有 cshtml 视图的 mvc 应用程序,它们都有不同的 url。它们是验收和生产应用程序。我需要根据 url 更改/隐藏 homeview 上的一些文本。例如:如果 URL 包含单词“production”,我需要将文本“PRODUCTION”添加到主屏幕上的 div。

谁能指出我正确的方向?

【问题讨论】:

  • stackoverflow.com/questions/4597050/… 您可以将此答案用作您的 div 元素。
  • 如果您唯一的选择是从 URL 读取,则在您的控制器操作中读取 Request.Uri 并将您的环境名称传递给您的视图。理想情况下,您应该对此类事情进行配置设置。

标签: asp.net asp.net-mvc razor model-view-controller


【解决方案1】:

使用 ViewBags。例如在控制器中声明 ViewBag:

ViewBag.Type = "Production"

在生产页面上,并且:

ViewBag.Type = "Other Type"

在控制器的其他方法中。然后在 homeview 中检查这个 ViewBag 下的内容。

if (!string.IsNullOrEmpty(ViewBag.Type))
{
    if (ViewBag.Type == "Production")
    {
        <p>Production</p>
    }
    else if (ViewBag.Type == "Other Type")
    {
        <p>Other Type</p>
    }
}

【讨论】:

    【解决方案2】:

    有更好的方法来做到这一点。

    您可以使用 web.config 转换,这样您将拥有用于测试和生产的不同配置文件。

    在 web.config 中创建 appsetting

    <appSettings>
                <add key="Environment" value="Test" />
    </appSettings>
    

    在cshtml中检查键值并做一些事情

        @if(!string.IsNullOrEmpty(ConfigurationManager.AppSettings.Get("Environment")) && ConfigurationManager.AppSettings.Get("Environment") == "Test")
    {
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-20
      • 1970-01-01
      • 2020-06-01
      • 1970-01-01
      • 2013-08-28
      • 2014-05-11
      相关资源
      最近更新 更多