如何携带我的ID(URL中的“27”,到下一个视图)
我的第一个视图中的网址:
http://localhost:11956/Forum/Details/27
在此视图中,我使用ActionLink打开一个新视图,但新窗口没有id。这是我搁浅的地方。我可以偶然@Url-id...
处理其他内容,或者在C#ForumContrller中处理它是否更好?如果是,那怎么办呢?
@Html.ActionLink("Post reply", "CreateTopicMessage" , new { id=@Url-id... })
答案 0 :(得分: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 })
答案 1 :(得分: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
)