1

为什么我们会有这种行为?

控制器动作:

public ActionResult TestProc(List<int> list)
{
  return new ContentResult();
}

要求:

/TestProc 导致一个空列表。好的

/TestProc?list=[] 导致一个空列表。好的

/TestProc?list= 导致一个包含一项 0 的列表。不正常。我假设活页夹看到查询字符串存在,它没有任何值,因此它将默认 int 值推送到列表中,即它将 list= 视为与 list=0 相同。我觉得这很混乱。我会认为 list= 在这种情况下根本没有 list 是相同的,我希望 list 为空。

4

1 回答 1

0

我觉得这很混乱

我同意。在这种情况下,您可以使用可为空的整数:

public ActionResult TestProc(List<int?> list)

这一次,模型绑定器将推送一个元素,如果你必须这样做null,你将能够消除歧义。/TestProc?list=/TestProc?list=0

于 2012-07-05T05:45:26.227 回答