试图在HTML.ActionLink中传递Guid参数,但得到?Length = 5

时间:2014-12-12 23:00:04

标签: asp.net-mvc razor parameter-passing actionlink

我试图通过网址传递参数。

我在网址中传递了一个Guid:

http://localhost:55097/Admin/ListCase/a2cc5900-bdff-41f1-9c2a-21032a5275de

我正在尝试在下一个视图中捕获它并将其作为参数添加到另一个URL:

@Html.ActionLink("Add a Cover","CreateCover","Admin", new { id=Request.QueryString[0]})

我试图将它作为ViewBag进行低音并从QuesryString中抓取(如上所示),但是或者某种原因产生的链接出现了?最后长度为5。不是Guid。

任何想法???

2 个答案:

答案 0 :(得分:0)

正如@ ps2goat所说,构建URL的方式使GUID成为路径的一部分,而不是查询字符串。您也可能想给它一个识别密钥:

http://localhost:55097/Admin/ListCase/?guid=a2cc5900-bdff-41f1-9c2a-21032a5275de

然后你可以使用" guid"来检索它。键:

@Html.ActionLink("Add a Cover","CreateCover","Admin", new { id=Request.QueryString["guid"]})

答案 1 :(得分:0)

尝试修改您对其他重载方法的操作链接,并从路径数据集合中获取id参数,而不是从查询字符串中获取,

@Html.ActionLink("Add a Cover","CreateCover", routeValues: new { controller = "Admin", id= Request.RequestContext.RouteData.Values["id"]})