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

Asp.net MVC 3全球查询?

发布时间:2020-12-16 09:23:05 所属栏目:asp.Net 来源:网络整理
导读:我正在为两个业务组构建一个通用的Web应用程序.徽标/横幅需要根据查询字符串进行更改.例如,如果网址是http://foo.com/test?bg=a,则会显示商家组a的徽标,如果网址为http://foo.com/test?bg=b,则会显示徽标对于商业团体b.如果我只有一个动作,这不是问题.但我有
我正在为两个业务组构建一个通用的Web应用程序.徽标/横幅需要根据查询字符串进行更改.例如,如果网址是http://foo.com/test?bg=a,则会显示商家组a的徽标,如果网址为http://foo.com/test?bg=b,则会显示徽标对于商业团体b.如果我只有一个动作,这不是问题.但我有很多行动.

我可以检查所有操作的查询字符串,但必须有一个很好的方法来做到这一点.我有一种感觉,我需要做一些路由的东西,但只是不知道如何.谁能告诉我怎么做?

解决方法

您可以编写一个自定义帮助器方法,该方法基于查询字符串参数将给定的类名添加到某个div.那么你当然会在你的CSS文件中应用背景图像有不同的类定义.

例如:

public static class HtmlExtensions
{
    public static string BannerClass(this HtmlHelper html)
    {
        var bg = html.ViewContext.Controller.ValueProvider.GetValue("bg");
        if (bg == null || string.IsNullOrEmpty(bg.AttemptedValue))
        {
            // no bg parameter => return a default class
            return "default_banner";
        }

        if (string.Equals("a",bg.AttemptedValue))
        {
            return "banner_a";
        }
        else if (string.Equals("b",bg.AttemptedValue))
        {
            return "banner_b";
        }

        // unknown value for the bg parameter => return a default class
        return "default_banner";
    }
}

然后在你的_Layout中你可以把这个类应用到像div或者身体这样的占位符:

<div class="@Html.BannerClass()">OK</div>

这样,它将始终应用于应用程序中的所有视图.

现在剩下的就是为不同的横幅定义CSS规则:

.default_banner {
    background-image: url('../images/default_banner.png')
}

.banner_a {
    background-image: url('../images/banner_a.png')
}

.banner_b {
    background-image: url('../images/banner_b.png')
}

(编辑:李大同)

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

    推荐文章
      热点阅读