我有以下用PHP编写的循环:
$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
循环。
我不明白如何处理C#中的key => value
我已根据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
。如何将其公开给C#中的foreach
循环?因为这在PHP世界中很好。
答案 0 :(得分:2)
foreach (string key in Request.QueryString)
{
string value = Request.QueryString[key];
// add your other code here
}
现在,您遍历查询字符串中的所有键,然后使用Request.QueryString[key]
获取其值。