【问题标题】:Load Partial Views from Database从数据库加载部分视图
【发布时间】:2014-12-08 08:22:35
【问题描述】:

我有一个要求,即明天部分视图的数量可能会增加,并且它们可以是任意数量和任意类型的组合。嗯,是的,我可以使用部分视图本身来做到这一点,但是当我添加新的部分添加时,我将需要重新编译我想要避免的应用程序。它非常像一个 CMS,您只需指定字段,然后根据您指定的字段及其类型动态生成表单。

编辑 1

假设您正在构建一个调查应用程序,其中有多种类型的问题,并且每种类型都有相关的部分视图。现在,如果明天您需要添加一个或多个问题类型 - 您将如何动态地为新问题类型动态创建局部视图? 这就是将视图定义存储在 XML 文件或数据库中的想法的来源,这样您就可以为新的局部视图添加一个条目,并且您可以在不重新编译的情况下为新问题类型显示新视图 >重启你的服务器。


我们可以在 ASP.NET MVC 5 中使用数据存储(任何数据库:SQL Server/MySQL 或 XML 文件/平面文件)做类似的事情吗?非常感谢任何想法、指示和提示!

如有错误请指正。

【问题讨论】:

  • 你能提供例子吗?我没明白:-/
  • 你能贴出你试过的代码吗?

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


【解决方案1】:

是的,您可以使用具有多个值的 objectContainer:

局部视图模型:

public List<DynamicQuestion> dynamicQuestionList { get; set; }

public class DynamicQuestion
    {
        public string question{ get; set; }
        public string ask{ get; set; }
    }

你可以得到一个 DynamicQuestion 的列表,这样你就可以了

在 Db 中,您应该有一个包含

的表“问题”
id, question

承载所有问题

还有一张“问”的桌子

id, idQuestion, response

那省去所有问

【讨论】:

  • 感谢您的回复,但这不是我所期望的。假设您有六个问题类型的六个部分视图。您部署了应用程序。明天,假设您需要添加另一种具有特定布局的问题类型(新的局部视图)。
  • 一个布局一个问题?您可以将布局存储在新字段下的“问题”表中,比如说“布局”?
  • 你对“布局”的定义是什么?
  • 如果是html,直接使用@Html.Raw(HtmlUtility.SanitizeHtml(yourDataFromDB))
  • 好吧,您似乎为我指明了正确的方向……让我继续努力,我会尽快回复您。感谢@clement 的帮助!
猜你喜欢
  • 2012-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多