ASP.NET MVC:如何在MVC应用程序中使用静态HTML页面?

在我正在开发的应用程序中,我想允许用户上传静态HTML页面来替换认的“用户配置文件”MVC View页面。这可能吗?也就是说,用户上传的HTML页面将完全用完MVC,并且可以包含自己的CSS链接等。

想法?建议?

解决方法

显然,.net MVC框架处理已经存在于图像/ css / js等的静态内容。这只是一个扩展(路由?)的问题,将.html文件直接传递到IIS。再加上一些重写,使漂亮的url应该做的伎俩。

不过,我非常非常警惕,允许用户生成内容以原始HTML上传的形式,因为您正在离开非常宽敞的门。最好的是,你将会满足人们的垃圾邮件/色情/广告页面。最糟糕的是,您将为人们提供上传站点脚本攻击的渠道,并可能上传恶意内容来破坏您的网站。您可以轻松地将现有的表单存储在您的网站上,将一堆垃圾硬编码到其中,并将其从主页中删除,并打破整个事物。

至少您应该解析上传内容,将其减少到一小段内容,然后将其包装在您自己的内容中。我个人更倾向于向用户提供一个好的所见即所得编辑器来编辑单一内容 – 任何值得它的盐的编辑应该为您提供关于它包含/不包括哪些元素的消毒。然后将此内容片段存储在数据库/光盘上,并通过标准MVC控制器路由请求主页,并加载该内容

编辑 – 为您请求示例
您应该能够向路由添加一个忽略规则 – 可能已经有这些示例已经破解打开​​了Global.asax文件 – 您将要调用route.IgnoreRoute方法

routes.IgnoreRoute("UserPages/{*path}");

应该让IIS处理对yourwebsite.com/UserPages/aUser/homepage.html的所有请求 – 您还可以使用通配符片段/约束更漂亮的解决方

相关文章

这篇文章主要讲解了“WPF如何实现带筛选功能的DataGrid”,文...
本篇内容介绍了“基于WPF如何实现3D画廊动画效果”的有关知识...
Some samples are below for ASP.Net web form controls:(fr...
问题描述: 对于未定义为 System.String 的列,唯一有效的值...
最近用到了CalendarExtender,结果不知道为什么发生了错位,...
ASP.NET 2.0 page lifecyle ASP.NET 2.0 event sequence cha...