C# 在ASP.NET MVC4中,如何将Id从一个视图传送到另一个视图?

C# 在ASP.NET MVC4中,如何将Id从一个视图传送到另一个视图?,c#,asp.net,asp.net-mvc,asp.net-mvc-4,razor,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 4,Razor,我如何携带我的id(URL中的'27',到下一个视图) 我的第一个视图中的URL: http://localhost:11956/Forum/Details/27 在这个视图中,我用ActionLink打开了一个新的视图,但是新窗口没有id。这就是我搁浅的地方。我是否可以将@Url-id..与其他内容联系起来,或者在C#forumcontroller中处理它更好,如果可以,如何处理 @Html.ActionLink("Post reply", "CreateTopicMessage" , ne

我如何携带我的id(URL中的'27',到下一个视图)

我的第一个视图中的URL:

http://localhost:11956/Forum/Details/27
在这个视图中,我用ActionLink打开了一个新的视图,但是新窗口没有id。这就是我搁浅的地方。我是否可以将
@Url-id..
与其他内容联系起来,或者在C#forumcontroller中处理它更好,如果可以,如何处理

@Html.ActionLink("Post reply", "CreateTopicMessage" , new { id=@Url-id... })

我认为你的语法有点错误:

@Html.ActionLink(
"Post Reply",
"CreateTopicMessage", 
"Forum", //I'm guessing here
 new { id = @Url-id }, //assign your route value
 null //for html attributes, it can be left null
)

路由中
{id}
参数的值存储在
RouteData
集合中。可以从如下视图中访问:

@ViewContext.RouteData["id"]
因此,您的代码应该是:

@Html.ActionLink("Post reply", "CreateTopicMessage" , new { id= ViewContext.RouteData["id"] })
尽管如此,我还是郑重建议您在控制器操作中将该id分配给模型的属性,因为您的视图实际上不应该具有任何依赖关系或路由知识。比如:

class ForumController : Controller
{
    public ActionResult Detail(int id)
    {
        Forum model = LoadForumById(id);
        return View(model); // Forum has an "Id" property
    }
}
然后,您视图中的操作链接代码将是:

@Html.ActionLink("Post reply", "CreateTopicMessage" , new { id = Model.Id })

如果需要,我可以为视图和控制器添加代码。@rqdbyx,您应该提供一个关于如何解决它的逐步描述,作为对这个(您自己的)问题的回答,这样其他有类似问题的人都知道该怎么做。另外,这意味着这个问题可以标记为已解决。无法编译“@Url-id”或我的“@Url-id…”。我把它写成一种占位符,我认为你站在另一个地方。据我所知,您的解决方案没有添加任何内容,抱歉。