【问题标题】:ASP.Net MVC reusable form as RenderAction or RenderPartialASP.Net MVC 可重用表单作为 RenderAction 或 RenderPartial
【发布时间】:2010-08-21 03:17:33
【问题描述】:

我正在寻找将表单作为局部视图嵌入多个页面的最佳做法。

我希望将一个联系表单嵌入到网站的多个页面中。通常,表单位于联系页面上,联系模型可以是视图模型并使用数据注释进行验证。但是,视图已经是强类型的。

如何在局部视图中创建可重复使用的表单并将其嵌入到页面中?我在网站上使用 N2,所以页面必须已经有一个强类型模型,但我愿意扩展这些对象。

【问题讨论】:

    标签: asp.net-mvc forms asp.net-mvc-partialview renderaction


    【解决方案1】:

    就我个人而言,我建议使用 for Html.RenderAction() 来处理诸如此类的横切关注点。

    您的联系表单的处理程序需要独立于您当前查看的页面而存在,因此您有 3 个选项:

    1. 手动将其添加到响应中 当前操作
    2. 手动将其添加到响应中 电流控制器通过一个 修改的基本控制器 ViewState 或 ViewModel
    3. 调用 RenderAction() 当前视图内的 HtmlHelper

    在这 3 个选项中,虽然第 3 个在技术上比 1 和 2 成本更高(因为它发起了一个全新的请求),但它也是最易于维护的解决方案。通过调用 RenderAction(),您可以将您的联系表单与视图的其余部分完全隔离开来,因此您不必担心将其侵入当前的控制器响应中。

    【讨论】:

      【解决方案2】:

      如果局部视图的数据模型已经在主视图的模型中,则使用 RenderPartial,在其他情况下使用 RenderAction(然后局部视图的操作将自己创建其视图模型)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多