0

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

我的第一个视图中的 URL:

http://localhost:11956/Forum/Details/27

在此视图中,我使用 ActionLink 打开一个新视图,但新窗口没有 ID。这是我搁浅的地方。我可以有机会@Url-id...做其他事情,还是在 C# ForumContrller 中处理它更好,如果可以,怎么做?

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

2 回答 2

1

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

@ViewContext.RouteData["id"]

所以你的代码应该是:

@Html.ActionLink("Post reply", "CreateTopicMessage" , new { id= ViewContext.RouteData["id"] })

虽然,我强烈建议您在 Controller 操作中将该 id 分配给模型的属性,因为您的 View 确实不应该有任何依赖关系或路由知识。就像是:

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 })
于 2013-09-22T03:42:25.263 回答
0

我认为你的语法有点不对劲:

@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
)
于 2013-09-22T01:59:08.127 回答