C# 如何使用url和Contains()执行switch语句
我有一些URL如下所示:C# 如何使用url和Contains()执行switch语句,c#,asp.net,asp.net-mvc,razor,switch-statement,C#,Asp.net,Asp.net Mvc,Razor,Switch Statement,我有一些URL如下所示:/Collection/Summary?ViewBy=AZ 我试图实现一个switch语句,这样如果url包含X,那么Y就会出现 当它只是一个if/else时,它就工作了,但我不确定它如何与switch表达式一起工作,尤其是包含部分 下面是代码片段: @{ switch(Request.RawUrl.Contains) { case "Summary": case "Detail": @Styles
/Collection/Summary?ViewBy=AZ
我试图实现一个switch语句,这样如果url包含X,那么Y就会出现
当它只是一个if/else时,它就工作了,但我不确定它如何与switch表达式一起工作,尤其是包含部分
下面是代码片段:
@{
switch(Request.RawUrl.Contains)
{
case "Summary":
case "Detail":
@Styles.Render("~/Content/global");
break;
default:
@Styles.Render("~/Content/site");
break;
}
}
Contains
是一个函数,不是要匹配的属性或变量。改为使用ToString
或Substring
另一种方法是:
ViewContext.RouteData.Values[“controller”].ToString()
如果您将搜索词放入列表或数组中,我们可以使用FirstOrDefault
扩展方法获取原始url包含的列表中的第一项,并且您可以编写类似于所需的代码:
var keywords = new[] {"Summary", "Detail"};
switch(keywords.FirstOrDefault(Request.RawUrl.Contains))
{
case "Summary":
case "Detail":
@Styles.Render("~/Content/global");
break;
default:
@Styles.Render("~/Content/site");
break;
}