最近、 TitleとContentを含む content テーブルに基づいてページを作成する方法について質問しました。与えられた回答で、理解できるように、手順に従いました。
次のようなルートを作成しました。
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
routes.MapRoute(
"ContentManagement",
"{title}",
new { controller = "ContentManagement", action = "Index", title = "{title}" }
);
}
このようなルートができると思いますか?複数のルートを設定できる場所 また、私が行ったように、タイトルをコントローラーアクションに渡すことができると仮定していますか?
次に、モデルを作成しました。
namespace LocApp.Models
{
public class ContentManagement
{
public int id { get; set; }
[Required]
public string title { get; set; }
public string content { get; set; }
}
}
そこから、次のようなインデックス アクションを持つコントローラーを作成しました。
public ViewResult Index(string title)
{
using (var db = new LocAppContext())
{
var content = (from c in db.Contents
where c.title == title
select c).ToList();
return View(content);
}
}
それで、 「bla」というタイトルのコンテンツを作成したので、site.com/bla にアクセスすると、「bla/」が見つからないというエラーが表示されます。
誰かが私が間違っていることを教えてもらえますか? また、上部にタブがあるasp.net mvcプロジェクトのデフォルトのレイアウトに精通している場合は、データベースのタイトルに基づいて、ページにつながる一連のタブを作成します