我已经查看了 StackOverFlow 上发布的许多问题,大多数答案最终都是关于使用什么 CMS 平台,而不是如何从 Scratch 实际创建一个。
搜索互联网和书籍也没有为我的问题找到任何有用的答案。
我对使用 Asp.Net MVC 还很陌生,想知道如何在 C# 中使用 Asp.Net、MVC、 Entity Framework 制作一个非常基本的 CMS。
我的主要问题是创建数据库驱动的页面,这些页面没有硬编码到 MVC Controller 中,也没有物理定位为 Somepage.cshtml
想知道如何执行以下操作:
传入 URL:MainWebsite.com/DatabaseProvidedPage
目标是让路由中的 Controller 在 URL 中没有/controller/的页面默认为数据库驱动/创建的网页。
想真正知道如何做到这一点。
不寻找用于执行此操作的平台。
我想学习使用 Asp.Net MVC 创建 CMS 的基础知识。
只是真的想要:
如何做到这一点?
URL: MainWebsite/DatabaseProvidedWebpage --> 返回给用户存储在数据库中的HTML
谢谢,
最佳答案
找到解决方案:
路由
// Display Database Provided Page MainSite.Com/{PageName}
routes.MapRoute("DatabasePage",
"{PageName}",
new { controller = "Home",
action = "Index",
PageName = ""
});
Controller :
public ActionResult Index(String PageName)
{
if (PageName == null)
{
List<PageTable> pages = PagesRepository.GetAllPages();
return View(pages);
}
PageTable FindPageName = PagesRepository.GetPageByURL(PageName);
if (FindPageName == null)
{
return Content(PageName);
}
if (FindPageName != null)
{
return View(FindPageName);
}
return View("");
}
查看
@model CMS_Repository.DAL.EF.PageTable
@{
ViewBag.Title = "Details";
}
<h2>Details</h2>
<div>
<h4>PageTable</h4>
<hr />
<dl class="dl-horizontal">
<dt>
@Html.DisplayNameFor(model => model.Title)
</dt>
<dd>
@Html.DisplayFor(model => model.Title)
</dd>
<dt>
@Html.DisplayNameFor(model => model.Content)
</dt>
<dd>
@Html.DisplayFor(model => model.Content)
</dd>
<dt>
@Html.DisplayNameFor(model => model.FriendlyURL)
</dt>
<dd>
@Html.DisplayFor(model => model.FriendlyURL)
</dd>
<dt>
@Html.DisplayNameFor(model => model.ControllerName)
</dt>
</dl>
关于c# - 如何使用 Asp.Net MVC C# 创建 CMS 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24543737/