で 1 つのフォームを作成し、 でもう 1 つのフォームを作成HtmlHelper<BlueUser>しHtmlHelper<GreenUser>、異なるアクションに投稿させます。
まず、ビューモデルは次のとおりです。
@model ParentModel
次にHtmlHelperFor、サブモデルごとに HtmlHelper を作成するために使用します。
@{
   var blueHtml = Html.HtmlHelperFor(Model.BlueUser);
   var greenHtml = Html.HtmlHelperFor(Model.GreenUser);
}
@using (blueHtml.BeginForm("BluePost", null)) {
   @blueHtml.EditorForModel()
}
@using (greenHtml.BeginForm("GreenPost", null)) {
   @greenHtml.EditorForModel()
}
最後に、コントローラーでフォームごとに異なる POST アクションを作成します。
[HttpPost]
public ActionResult BluePost(BlueUser model) {
   ...
}
[HttpPost]
public ActionResult GreenPost(GreenUser model) {
   ...
}
拡張方法は次のとおりです。
public static class HtmlHelperFactoryExtensions {
   public static HtmlHelper<TModel> HtmlHelperFor<TModel>(this HtmlHelper htmlHelper) {
      return HtmlHelperFor(htmlHelper, default(TModel));
   }
   public static HtmlHelper<TModel> HtmlHelperFor<TModel>(this HtmlHelper htmlHelper, TModel model) {
      return HtmlHelperFor(htmlHelper, model, null);
   }
   public static HtmlHelper<TModel> HtmlHelperFor<TModel>(this HtmlHelper htmlHelper, TModel model, string htmlFieldPrefix) {
      var viewDataContainer = CreateViewDataContainer(htmlHelper.ViewData, model);
      TemplateInfo templateInfo = viewDataContainer.ViewData.TemplateInfo;
      if (!String.IsNullOrEmpty(htmlFieldPrefix))
         templateInfo.HtmlFieldPrefix = templateInfo.GetFullHtmlFieldName(htmlFieldPrefix);
      ViewContext viewContext = htmlHelper.ViewContext;
      ViewContext newViewContext = new ViewContext(viewContext.Controller.ControllerContext, viewContext.View, viewDataContainer.ViewData, viewContext.TempData, viewContext.Writer);
      return new HtmlHelper<TModel>(newViewContext, viewDataContainer, htmlHelper.RouteCollection);
   }
   static IViewDataContainer CreateViewDataContainer(ViewDataDictionary viewData, object model) {
      var newViewData = new ViewDataDictionary(viewData) {
         Model = model
      };
      newViewData.TemplateInfo = new TemplateInfo { 
         HtmlFieldPrefix = newViewData.TemplateInfo.HtmlFieldPrefix 
      };
      return new ViewDataContainer {
         ViewData = newViewData
      };
   }
   class ViewDataContainer : IViewDataContainer {
      public ViewDataDictionary ViewData { get; set; }
   }
}