为什么我不能直接将表单数据绑定到action方法参数?

时间:2010-08-06 15:47:40

标签: c# asp.net-mvc

我有这样的行动方法:

public ActionResult Index(HttpPostedFileBase image, int variable)

并形成这样的元素:

variable 1:<input type="text" name="variable" value="1234" />

当我开始调试时,我遇到以下异常:

  

参数字典包含非可空类型'System.Int32'的参数'variable'的空条目,用于'Stream中'方法'System.Web.Mvc.ActionResult Index(System.Web.HttpPostedFileBase,Int32)'。 Controllers.HomeController”。可选参数必须是引用类型,可空类型,或者声明为可选参数。   参数名称:参数

这有什么问题?

3 个答案:

答案 0 :(得分:1)

试试这个:

public ActionResult Index(HttpPostedFileBase image, int? variable)

问号(?)表示变量是一个可以为空的变量,然后可以为其赋值。

要了解有关可空类型的更多信息,请在MSDN上阅读:Nullable Types (C# Programming Guide)

答案 1 :(得分:0)

尝试:

<input type="text" id="variable" name="variable" value="1234" />

提供一个ID,看看你是否也遇到了同样的问题......另外,我知道你可能知道这一点,但要验证,你确实把它放在了发布的表格中,对吗?

答案 2 :(得分:0)

确保您的<input>位于<form>标记中,并且该表单是正在执行其操作的表单。