我在使用 Preview 5 创建 ActionLink 时遇到问题。我能找到的所有文档都描述了旧的通用版本。
我正在 /jobs 页面上的工作列表上构建链接。每个工作都有一个 guid,我想构建一个指向 /jobs/details/{guid} 的链接,以便显示有关该工作的详细信息。我的作业控制器有一个索引控制器和一个详细信息控制器。详细信息控制器需要一个向导。我试过这个
<%= Html.ActionLink(job.Name, "Details", job.JobId); %>
但是,这给了我网址“/jobs/details”。我在这里想念什么?
已解决,在您的帮助下。
路线(在包罗万象的路线之前添加):
routes.Add(new Route("Jobs/Details/{id}", new MvcRouteHandler())
{
Defaults = new RouteValueDictionary(new
{
controller = "Jobs",
action = "Details",
id = new Guid()
}
});
动作链接:
<%= Html.ActionLink(job.Name, "Details", new { id = job.JobId }) %>
结果在 html 锚点中:
http://localhost:3570/WebsiteAdministration/Details?id=2db8cee5-3c56-4861-aae9-a34546ee2113
所以,它令人困惑的路线。我在网站管理员之前移动了我的工作路线定义,现在它可以工作了。显然,我的路线定义很糟糕。我需要阅读更多示例。
附带说明,我的链接没有显示,并且快速观看不起作用(无法快速观看匿名类型的表达式),这使得弄清楚这里发生了什么变得更加困难。事实证明,由于一个非常小的错字,操作链接没有显示:
<% Html.ActionLink(job.Name, "Details", new { id = job.JobId })%>
那会再次吸引我。