ASP.NET MVC 如何在运行时添加新页面?

Posted

技术标签:

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

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

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

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

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

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

【问题讨论】:

【参考方案1】:

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

    创建一个处理 post 操作的 MVC 操作。 当客户端按下“添加”按钮时创建对此操作的 AJAX 发布调用,处理此调用并添加 <li> 节点。 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 与请求匹配。

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

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

希望这会有所帮助。

【讨论】:

以上是关于ASP.NET MVC 如何在运行时添加新页面?的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET MVC 页面不通过 3G 或某些代理服务器提供服务

使用 ASP.net MVC 创建新用户时设置角色

ASP.NET中的MVC如何使用?

ASP.NET中的MVC如何使用?

点击浏览器后退按钮时如何刷新 ASP .NET MVC 页面

asp.net mvc 如何添加css