Asp.net MVC 3如何实现全球范围内的复杂查询功能?
- 内容介绍
- 文章标签
- 相关推荐
本文共计464个文字,预计阅读时间需要2分钟。
我正在为两个业务组构建一个通用的Web应用程序。需要根据查询字符串进行更新。例如,如果网址是http://foo.com/test?bg=a,则会显示商家组a的横幅/横幅高度。如果网址为http://foo.com/test?bg=b,则显示商家组b的横幅。
我正在为两个业务组构建一个通用的Web应用程序.徽标/横幅需要根据查询字符串进行更改.例如,如果网址是foo.com/test?bg=a,则会显示商家组a的徽标,如果网址为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') }
本文共计464个文字,预计阅读时间需要2分钟。
我正在为两个业务组构建一个通用的Web应用程序。需要根据查询字符串进行更新。例如,如果网址是http://foo.com/test?bg=a,则会显示商家组a的横幅/横幅高度。如果网址为http://foo.com/test?bg=b,则显示商家组b的横幅。
我正在为两个业务组构建一个通用的Web应用程序.徽标/横幅需要根据查询字符串进行更改.例如,如果网址是foo.com/test?bg=a,则会显示商家组a的徽标,如果网址为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') }

