调用Controller的Action方法有什么问题

时间:2011-02-25 09:03:19

标签: asp.net-mvc-2 asp.net-mvc-routing

当我将用户重定向到此Url时

http://localhost:34768/Module/Edit?versionId=f4592b62-17e4-47e1-8a08-6a927a1c895e?selectedTab=0&selectedRowId=4c1fb4a6-691f-4c03-9e67-8f8b10a95c0e

我会收到以下错误:

  

参数字典包含一个   参数'versionId'的空条目   非可空类型'System.Guid'的   方法'System.Web.Mvc.ActionResult   编辑(的System.Guid,   System.Nullable 1[System.Int32], System.Nullable 1的System.Guid]   System.String)'in   'ParKone.Controllers.ModuleController'。   可选参数必须是a   引用类型,可空类型或者是   声明为可选参数。   参数名称:参数

我的控制器操作如下所示:

public ActionResult Edit(Guid versionId, int? selectedTab, Guid? expandedRowId, string url = "")

我不明白为什么versionId没有通过。如果我写这个Url然后它运作顺利。

  

http://localhost:34768/Module/Edit?versionId=f4592b62-17e4-47e1-8a08-6a927a1c895e

有什么想法吗?

更新

我在Web.config中有这种行

<httpRuntime requestValidationMode="2.0" requestPathInvalidCharacters="" />

1 个答案:

答案 0 :(得分:2)

你的网址中有两个?,所以路由从第二个接收你的参数?的?用作参数和URL的分隔符,所以在这种情况下,路由似乎从第二个后面的查询字符串部分中获取参数?。