c# - 如何使用 Asp.Net MVC C# 创建 CMS 应用程序

标签 c# asp.net-mvc database entity-framework content-management-system

我已经查看了 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/

相关文章:

c# - 如何从另一个类访问控件?

c# - "Error creating window handle"定义覆盖的 WndProc 方法后

asp.net-mvc - WebApiController 和 HttpContext.Current.User 中的 User 是否不同?

python - SQLAlchemy:从初始值设定项中获取值

c# - Stream Reader 进程无法访问文件,因为它正在被另一个进程使用

c# - 如何从头开始在 Roslyn 中创建语法节点?

c# - 无法加载文件或程序集 CrystalDecisions.ReportAppServer.ClientDoc

c# - 如何实现返回类型为 Task<T> 的方法

sql - 访问数据库元数据

java.lang.ClassCastException : org. apache.struts.validator.DynaValidatorForm 无法转换