【发布时间】:2012-01-18 14:38:26
【问题描述】:
我们正在研究将我们的自定义 .net 网络表单 CMS 移植到 MVC。
我们当前 CMS 的一个功能是用户能够将模块(实际上只是 .net 用户控件)添加到富文本编辑器中。然后将这些模块解析到一个容器中。
plc_controls.Controls.Add(Page.ParseControl(description));
其中“描述”是数据库中包含一些普通页面内容的字段,并且可以在标记中包含一个或多个用户控件。
mvc 框架中是如何容纳这种东西的?我对 MVC 不太熟悉,不知道从哪里开始——此时我们只是在调查这一举措是否有意义。
使用示例编辑
目前,用户可以输入如下所示的标记:
<p>Some text</p>
<cms:facilities id="facilities" membertypes="2,3,4" runat="server" />
<p>Some more text</p>
这存储在名为“描述”的单个数据库字段中,在我们的网络表单 CMS 中,我将此描述解析为一个控制容器,如上所述。 cms:facilities 是加载到 web.config 的页面/控件部分的 Web 用户控件。该控件仅在两个段落标记之间呈现设施列表。
【问题讨论】:
-
简短的回答是,它没有。 ASP.NET MVC 框架中没有自定义控件之类的东西。您很可能可以使用另一种方法获得类似的行为,但我们需要更多信息才能为您提供完整的答案。例如,您的这些用户控件是否依赖于服务器端行为?
-
@rsenna - 很好,如何处理这个一般概念?
-
ASP.NET MVC 框架中最接近 WebForms 用户控件的是“部分视图”。您可能可以从那里开始。
-
@rsenna,是的,我见过这些,但我如何将它们动态呈现到视图中?这确实是需要发生的事情。
-
我猜你的问题是这样的:用户如何在网络富文本编辑器中添加由我的网站定义的自定义标记?当您使用 WebForms 时,一个有效的答案是使用用户控件和
Page.ParseControl。使用 ASP.NET MVC 是不可行的...但是你为什么不使用类似markItUp! 的东西呢?它们为您提供了一个完整且免费的标记编辑器,还允许您定义自定义标记。
标签: .net asp.net-mvc-3