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 或某些代理服务器提供服务