在ASP.Net MVC中传递参数

时间:2010-12-07 03:51:40

标签: asp.net asp.net-mvc

我想对asp.net mvc提出一些问题。实际上,我不熟悉web开发。我的问题是我有两个控制器,一个是登录,另一个是 在登录后,我想调用profile.so,我用这种方式,

返回RedirectToAction(“DiaplayProfile”,“Profile”,新{personID = Person.personID});

我的问题是我通过的参数显示我的URL.i不想显示。在网页开发中,如果我们使用post方法发送数据,参数不会显示在url中,是否正确?对我来说,我需要传递参数,但是,我不想在网址上显示。 我如何在MVC RedirectToAction中的post方法中使用?我还使用TempData进行了测试 传递数据,但是,如果我刷新,它就会消失。我会这样做吗?还有, 我可以使用[AcceptVerbs(HttpVerbs.Post)]来解决这个问题吗?

请指导我。

此致 冲

1 个答案:

答案 0 :(得分:2)

您不能将帖子作为重定向的一部分;重定向必须是get请求,因为您只是将浏览器传递给要重定向的URL。在MVC中,将id作为URL的一部分实际上被认为是一件好事。我会拥抱它。我不是将参数设为personID,而是使用id,以便可以使用默认路由。最终我想要一个看起来像这样的网址:

http://example.com/profile/display/1345

其中1345是相关人员的id。如果您使用默认路由,则意味着您的ProfileController Display方法需要一个id参数(类型为int)。您可以使用以下方法重定向到它:

return RedirectToAction( "display", "profile", new { id = 1345 } );

顺便说一句,你不能使用AcceptVerbs属性来控制重定向的方式,只能控制动作响应的HTTP动词。在这种情况下,我认为您确实希望接受GET,我认为您确实希望在网址中包含该ID。