直接在视图里使用Html.BeginForm是正常的。
但是以下代码却出现了异常:表单提前结束(没有把内容正确的放置在form中)
1、主视图代码:
@model CustomerSearchModel @Html.Action("CustomerList", "Customer", Model)
2、子视图代码(CustomerList.cshtml):
@model CustomerSearchModel @{ Layout = null; } @using (Html.Parent().BeginRouteForm(Model.RouteName, FormMethod.Get, new { Id = "SearchForm" })) { <div> </div> }
3、Html的扩展代码:
public static HtmlHelper<TModel> Parent<TModel>(this HtmlHelper<TModel> current) { var tmp = current.Root(); var result = current; if (current.ViewContext.IsChildAction) { var parentActionViewContext = result.ViewContext.ParentActionViewContext; result = new HtmlHelper<TModel>(parentActionViewContext, result.ViewDataContainer, result.RouteCollection); } return result; }
很奇怪的问题,切换到Parent后就会导致这个现象,不知道具体原因,先挂着吧。