我最近问了一个问题,基于如何基于包含以下内容的内容表创建页面:标题和内容。据我了解,我在给出的答案中遵循了这些步骤。
我创建了一条这样的路线:
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 项目的默认布局,我也会根据数据库中的标题创建一组通向页面的选项卡