Asp.net mvc ASP.NETMVC可重用表单,如RenderAction或RenderPartial

Asp.net mvc ASP.NETMVC可重用表单,如RenderAction或RenderPartial,asp.net-mvc,forms,asp.net-mvc-partialview,renderaction,Asp.net Mvc,Forms,Asp.net Mvc Partialview,Renderaction,我正在寻找将表单作为局部视图嵌入多个页面的最佳实践 我有一个联系方式,我想在一个网站的多个页面上嵌入。通常,表单位于联系人页面上,联系人模型可以是视图的模型,并使用数据注释进行验证。但是,视图已经是强类型的 如何在局部视图中创建可重用表单并将其嵌入页面?我在站点上使用N2,因此页面必须已经有了强类型模型,但我愿意扩展这些对象。我个人建议使用for Html.RenderAction()来处理此类横切问题 联系人表单的处理程序需要独立于当前查看的页面而存在,因此您只有3个选项: 手动将其添加到的响

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

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


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

我个人建议使用for Html.RenderAction()来处理此类横切问题

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

  • 手动将其添加到的响应中 当前行动
  • 手动将其添加到的响应中 电流控制器通过 基本控制器,用于修改 ViewState或ViewModel
  • 调用RenderAction() 当前视图内部的HtmlHelper

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

    如果部分视图的数据模型已在主视图的模型中,请使用RenderPartial,否则请使用RenderAction(然后局部视图的操作将创建其视图模型本身)