【问题标题】:ASP.NET MVC How do I add a new page in runtime?ASP.NET MVC 如何在运行时添加新页面?
【发布时间】:2020-02-15 04:23:29
【问题描述】:

所以我正在开发一个MVC5项目,我的情况是这样的:

我有一个名为“菜单编辑器”的视图,我希望能够从该视图添加新页面。通过页面,我的意思是,如果有人想创建一个名为“Help”的新页面,他们会写“Help”并按添加,然后导航栏中会出现“Help”选项,您可以单击它并将您重定向到“ .../Help" 将在运行时创建并且只是一个默认视图。

我怎样才能做到这一点,我可以从视图中做到这一点吗?

为了简单起见假设我有一个新的 ASP.NET MVC 项目,因为我想学习的是如何去做,什么是正确的语法,它与我的未简化代码段。

如果有帮助的话;我还安装并实施了 DevExpress 插件/扩展。

【问题讨论】:

    标签: asp.net asp.net-mvc asp.net-mvc-5 devexpress-mvc


    【解决方案1】:

    系统应该发布http请求并在发布成功后添加<li>节点。

    1. 创建一个处理 post 操作的 MVC 操作。
    2. 当客户端按下“添加”按钮时创建对此操作的 AJAX 发布调用,处理此调用并添加 <li> 节点。
    3. location.assign("your-url") 以访问您创建的页面

    【讨论】:

    • 您好,感谢您的建议!我是 ASP.NET 的新手,你能给我一个第二步的简单例子吗?
    • fetch('yourUrl', {method:'POST'}).then(function() {var ul = document.getElementById("ulId"); var li = document.createElement('li '); li.appendChild(document.createTextNode(name)); ul.appendChild(li);})
    【解决方案2】:

    处理这个问题的理想方法是让核心内容正常处理,但添加一种数据库或类似的东西,

    在最后的 RouteConfig.cs 中检查这个数据集,看看是否有任何 url 与请求匹配。

    如果是,您可以将请求重定向到控制器并从那里处理页面加载。

    每个页面的内容可以存储在文件、内存或类似的东西中。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-25
      • 1970-01-01
      • 2015-04-25
      • 2012-04-04
      相关资源
      最近更新 更多