-2

PHPで書かれた次のforループがあります:

$activesFilters = 0;

foreach ($_GET as $key => $value) {

    if(!empty($value)) $activesFilters++;

}

if(isset($_GET['Filter'])) { $activesFilters = $activesFilters - 1; }

if(isset($_GET['CustomFilter'])) { $activesFilters = $activesFilters - 1; }

if(isset($_GET['showArchived'])) { $activesFilters = $activesFilters - 1; }

そして、それを ASP.NET C# Razor に変換したいと考えています。

これまでのところ、私は持っています:

int activeFilter = 0;

@foreach(Request.QueryString as key in value) {
   if(!empty(value)) activeFilters+1;
}

@if(Request.QueryString['Filter']) activeFilters = activeFilters - 1;

@if(Request.QueryString['CustomFilter']) activeFilters = activeFilters - 1;

@if(Request.QueryString['showArchived']) activeFilters = activeFilters - 1;

それはforeach私が混乱しているループです。

key => valueC#での処理方法がわからないので

http://msdn.microsoft.com/en-us/library/ttw7t8t6(v=vs.90).aspxに基づいて上記を書きましたが、キーと値の部分を処理する例は示されていません.

アップデート:

以下のヘルプに基づいています。

@int activeFilters = 0;

@foreach (string key in Request.QueryString)
{
    string value = Request.QueryString[key];

    if(String.IsNullOrEmpty(value)){
        return activeFilters+1;
    }

}

ただしactiveFilters、現在のコンテキストには存在しないと言われています。foreachC#のループに公開するにはどうすればよいですか? これはPHPの世界では問題ありません。

4

1 に答える 1

2
foreach (string key in Request.QueryString)
{
    string value = Request.QueryString[key];
    // add your other code here
}

ここで、クエリ文字列内のすべてのキーを反復処理し、 を使用してそれらの値を取得しますRequest.QueryString[key]

于 2013-11-11T18:26:30.350 に答える