我想对asp.net mvc提出一些问题。实际上,我不熟悉web开发。我的问题是我有两个控制器,一个是登录,另一个是 在登录后,我想调用profile.so,我用这种方式,
返回RedirectToAction(“DiaplayProfile”,“Profile”,新{personID = Person.personID});
我的问题是我通过的参数显示我的URL.i不想显示。在网页开发中,如果我们使用post方法发送数据,参数不会显示在url中,是否正确?对我来说,我需要传递参数,但是,我不想在网址上显示。 我如何在MVC RedirectToAction中的post方法中使用?我还使用TempData进行了测试 传递数据,但是,如果我刷新,它就会消失。我会这样做吗?还有, 我可以使用[AcceptVerbs(HttpVerbs.Post)]来解决这个问题吗?
请指导我。
此致 冲
答案 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。