ASP.NET MVC を使用してサイトを構築しています。ではRouteConfig
、次のようにメソッドを変更しました。
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{Director}/{Movie}/{id}",
defaults: new { controller = "Movies", action = "Index", id = UrlParameter.Optional, Director = UrlParameter.Optional, Movie = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default2",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Movies", action = "Create", id = UrlParameter.Optional }
);
}
IndexView では、次のようにコーディングしました。
@model IEnumerable<MvcMovie.Models.Director>
<table>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
</tr>
<tr>
<td>
@foreach (var movie in item.Movies)
{
<div style="width: 100%;">
@Html.ActionLink(movie.Title, "Index", new { Director = movie.Director.Name, Movie = movie.Title }, null)
</div>
}
</td>
</tr>
}
</table>
RouteConfig
クライアントの要求を満たすために、監督や映画ごとに異なる URL が必要なので、実際に変更しましたSEO requirement
。
アクションに対しては正常に機能していますが、を使用してアクションをIndex
呼び出そうとしても、アクションが呼び出されます。これまでの私の理解によると、アクションを呼び出す必要があります。私は MVC を初めて使用するので、私の質問がばかげていると思われる場合は申し訳ありません。しかし、ここで欠けている主なものは何ですか?Create
@Html.ActionLink("Create New", "Create")
Index
Create