在ASP.net中 的Key是可能为null的,例如在如下的Url中
http://localhost:14546/Home/Index?a
有一个key=null 其value是a,以前一直以为key=a value=空串。经过实际测法,发现其实并不是这样。
如果url=http://localhost:14546/Home/Index?a=1&b 那么存在一个key=null和value=b的键值对
如果url=http://localhost:14546/Home/Index?a=1&b& 那么就存在一个key=null,value=b 以及一个value=空串的键值对。
测试程序如下(mvc的)
public ActionResult Index()
{
return View();
}
@{
ViewBag.Title = "Index";
}
<style>
table {
width:500px;
border-collapse: collapse;
}
th,td {
border: 1px solid black;
}
th {
background-color:#efefef;
}
</style>
<h2>Index</h2> @{
Func<string, string> render = (value) =>
{
if (value == null)
return "NULL"; if (string.IsNullOrEmpty(value))
return "EMPTY"; return value;
};
}
<table>
<tr>
<th> key</th>
<th> value</th>
</tr>
@foreach (var key in Request.QueryString.AllKeys)
{
<tr>
<td>@render(key)</td>
<td>@render(Request.QueryString[key])</td>
</tr>
}
</table>
输入http://localhost:14546/Home/Index?a
KEY | Value |
NULL | a |
输入http://localhost:14546/Home/Index?a=1&
Key | value |
a | 1 |
NULL | EMPTY |
输入http://localhost:14546/Home/Index?a&b
Key | value |
null | a,b |