【发布时间】:2011-09-11 16:12:45
【问题描述】:
我正在开发一个 ASP.NET MVC 应用程序,但遇到了一件奇怪的事情。
我有两个这样的控制器动作:
[CustomAuthorize(Roles = SiteRoles.Admin)]
public ActionResult Review(int? id)
[CustomAuthorize(Roles = SiteRoles.Admin)]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Review(AdReview data)
首先我调用Review 动作,参数为null,这将打开一个包含项目列表的网页。这些项目被链接回第一个带有 id 集的 Review 操作。
当 ID 已提供给审核操作时,将返回此项目的编辑网页。在进行一些更改后点击提交时,我们将结束第二个审核操作(发布)。此处将保存该项目。
到目前为止一切都很好。
现在,在最后的 Review 操作(发布)中,我最后得到了以下代码:
return RedirectToAction("Review", "Ad");
这会再次触发第一个Review动作,问题是它会提供之前的id吗?我的想法是 RedirectToAction 不会提供任何参数?
【问题讨论】:
-
检查这个stackoverflow.com/questions/1257482/…。在您的情况下,它看起来像:
return RedirectToAction("Review", new { id = "Ad"}); -
Samich > 在这种情况下,您的示例将生成网址 /Controller/Action/Controller /Ad/Review/Ad 这确实有效,但网址应该只是 /Ad/Review ?我之前使用过重定向,然后从来没有任何参数转发到新操作?
-
我现在无法检查。或者指定id为null,比如
return RedirectToAction("Review", new { id = null })? -
Samich > 但是这会起作用: return RedirectToAction("Review", new { id = ""});但是感觉不对?我之前用过Redirect,但是没有参数转发?
-
Samich > 是的,我已经尝试过 RedirectToAction("Review") 但这不起作用,参数(id)将被转发?
标签: asp.net-mvc redirect controller-action