1

我正在开发我的第一个 ASP.NET 到 Mono 端口。我建立了一个具有多种功能的测试站点进行测试。一个只是一个简单的表单帖子。我得到的错误是:

参数不能为空。参数名称:输入字符串

说明:HTTP 500。处理请求时出错。

堆栈跟踪:

System.ArgumentNullException:参数不能为空。参数名称: System.Web.UI.ObjectStateFormatter.Deserialize (System.String inputString) [0x00000] in System.Web.UI.LosFormatter.Deserialize (System.String input) [0x00000] in :0 的 inputString

我尝试通过注释掉所有处理会话变量或表单输入(Request.Form)的代码来进行调试,但仍然出现错误。我现在甚至将页面加载中的所有代码都注释掉了,但仍然没有骰子。此表单在 IIS 上作为 ASP.NET 工作正常。也许有我没有做的配置?

** 编辑 ** 我能够将问题定位到我用来从 System.Web.UI.Page 继承的自定义 Page 类,我已经覆盖了一些基本方法。当我切换回 System.Web.UI.Page 时,错误消失了。我确实需要我的自定义 Page 类。当我进行表单发布/回发时发生错误;初始加载工作正常。

4

1 回答 1

1

* 问题已解决 *它在 LosFormatter.Deserialize 方法中。我让它检查传递的字符串是否为空,然后将其修改为使用 string.IsNullOrEmpty。也许它也不喜欢空字符串。

于 2012-06-11T22:54:02.533 回答