Preview 5 を使用して ActionLink を作成する際に問題が発生しています。私が見つけることができるすべてのドキュメントは、古い汎用バージョンについて説明しています。
ページ /jobs の求人リストにリンクを作成しています。各ジョブには GUID があり、ジョブの詳細を表示できるように /jobs/details/{guid} へのリンクを作成したいと考えています。私のジョブ コントローラーには、Index コントローラーと Details コントローラーがあります。Details コントローラーは GUID を受け取ります。私はこれを試しました
<%= Html.ActionLink(job.Name, "Details", job.JobId); %>
ただし、これにより「/jobs/details」という URL が表示されます。ここで何が欠けていますか?
あなたの助けで解決しました。
ルート (キャッチオール ルートの前に追加):
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
だから、その紛らわしいルート。ジョブ ルート定義を Web サイト管理者の前に移動したところ、現在は機能しています。明らかに、私のルート定義はダメです。もっと例を読む必要があります。
ちなみに、私のリンクは表示されず、クイックウォッチも機能していませんでした (匿名型の式をクイックウォッチすることはできません)。非常に小さなタイプミスが原因で、アクション リンクが表示されないことが判明しました。
<% Html.ActionLink(job.Name, "Details", new { id = job.JobId })%>
それはまた私を得るつもりです。