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}。