【问题标题】:ASP.NET MVC 3: Get partial views inside a view folderASP.NET MVC 3:在视图文件夹中获取部分视图
【发布时间】:2011-05-09 12:36:03
【问题描述】:

我想创建一个常见问题解答页面,该页面从位于已定义视图文件夹内的部分视图中获取常见问题解答。 每个部分视图将包含问题、答案和一些排序字段。

我在视图文件夹中找不到提供完整视图列表的任何内容。

更新说明: 常见问题解答如下所示:

    @model Busker.MVC.Models.FAQ.FAQModel
    @{
        var title = "What is xxxxx?";    
    }
    <p>
      Please register @Html.ActionLink("Register", "register", "Member") here.
    </p>

FAQ的索引页面应该遍历所有FAQ,并首先显示带有锚定链接的问题,然后以块的形式显示所有标题和问题。

我正在研究的另一种方法是在 ViewAllFaqsModel 中加载视图。 Havent 想出了如何将部分视图放入模型的集合中......

【问题讨论】:

    标签: asp.net-mvc-3


    【解决方案1】:

    您使用局部视图的方法是错误的。创建局部视图是为了重用,而不是实际包含内容的文件。

    我会做什么:创建一个包含问题、答案和订单字段的文件 (XML) 或数据库,为其创建一个模型并在您的常见问题解答网站上输出。

    所以你可以在你的 aspx 文件中做这样的事情:

    <% foreach(FAQEntry faqentry in faqentries)
    { %>
        <h2><%= faqentry.Question %><2/>
        <!-- And so on... -->
    <% } %>
    

    【讨论】:

    • 我同意你所说的大部分内容。我不想使用类似 xml 的方法的原因是因为在常见问题解答中我仍然无法使用剃须刀功能,主要是 @Html 助手。我正在查看的当前解决方法是创建一个模型,该模型注册所有 faq-partial-views,然后一次性渲染它们..
    • Con 可以将 FAQ 存储在 xml 中(在控制器中),将其加载到模型中,并且仍然能够使用 html 帮助程序。您的 biew 的唯一责任应该是为您的数据提供形式,而不是从 xml 中获取它。尝试按照设计使用的方式使用 mvc。
    【解决方案2】:

    我认为您只需要一个局部视图,您需要多次渲染一个带有您提到的字段的 ViewModel。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-03
      • 2012-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-09
      相关资源
      最近更新 更多