Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用url和Contains()执行switch语句_C#_Asp.net_Asp.net Mvc_Razor_Switch Statement - Fatal编程技术网

C# 如何使用url和Contains()执行switch语句

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

我有一些URL如下所示:
/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;
}