1

丢失路由数据您好,我有一个奇怪的问题,在这里我们去:在RedirectToAction

我使用这个命令重定向:

return RedirectToAction("ViewMessage", "Account", new {id = model.MessageId});

但ViewMessage行动时,我试图让ID,它的空?!?!?!?!??

string strMessageId = RouteData.Values["id"] as string;

我已经在很多地方做这个代码,它工作正常,但我不知道这到底是怎么回事.... :(

我知道我可以使用TempData的,但我不想:)

+0

你的动作ViewMessage是否带有ID参数? – 2012-07-09 15:24:04

+0

是的,实际上首先我使用id查看消息,然后我将回复消息发布到ReplyMessage操作,并且当我尝试返回viewmessage操作时收到ID为null的操作。很酷的事情是,如果我使用@ html.actionlink(“查看”,“viewmessage”,“帐户”,新{id = xxxxxxxx},空)我可以得到消息:) – 2012-07-09 15:35:45

+0

你有没有工作过这一个有类似的问题)? – 2017-05-30 07:10:43

回答

0

尝试使用视图背景

ViewContext.RequestContext.RouteData.Values("id") 
+0

编译器说:“不能访问静态上下文中的非静态属性”RequestContext“另一方面,我告诉你我使用相同的代码在其他地方狙击和工作正常,但感谢您的快速回复:) – 2012-07-09 15:31:17

0

其实你为我做的工作仍然的方式访问路径值10试试这个


return RedirectToAction("ViewMessage",new RouteValueDictionary(new {controller="Account",action="ViewMessage", id = model.MessageId })); 
+0

仍然不是加工!!!! :| – 2012-07-10 07:02:50

0

检查你的路由配置。如果你的动作参数名称是“id”,那么你的路由URL格式应该是{controller}/{action}/{id}。