对控制器的 Action 方法的调用有什么问题

发布于 2024-10-19 04:48:31 字数 1184 浏览 2 评论 0原文

当我将用户重定向到此网址

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

我会收到以下错误:

参数字典包含一个 参数“versionId”的空条目 不可为 null 的类型“System.Guid” 方法'System.Web.Mvc.ActionResult 编辑(系统.Guid, System.Nullable1[System.Int32], System.Nullable1[System.Guid], System.String)' 中 'ParKone.Controllers.ModuleController'。 可选参数必须是 引用类型、可为 null 的类型,或者是 声明为可选参数。 参数名称:参数

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

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="" />

When I Redirect user to this Url

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

I'll get following error:

The parameters dictionary contains a
null entry for parameter 'versionId'
of non-nullable type 'System.Guid' for
method 'System.Web.Mvc.ActionResult
Edit(System.Guid,
System.Nullable1[System.Int32],
System.Nullable
1[System.Guid],
System.String)' in
'ParKone.Controllers.ModuleController'.
An optional parameter must be a
reference type, a nullable type, or be
declared as an optional parameter.
Parameter name: parameters

My controller action looks like this:

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

I don't understand why versionId is not coming through. If I write this Url then it works smoothly.

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

Any ideas?

Update

I have this kind of line in the Web.config

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

战皆罪 2024-10-26 04:48:31

您的网址中有两个 ?,因此路由将从第二个 ? 中获取您的参数。这 ?用作参数和 URL 的分隔符,因此路由似乎从第二个 ? 之后的查询字符串部分获取参数。

You have two ?'s in your url and so the routing is picking up your parameters from the second ?. The ? is used as a separator of your parameters and your URL and so it seems that the routing takes the parameters, in this case, from the portion of the querystring after the second ?.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文