【发布时间】:2015-06-30 08:49:45
【问题描述】:
我有这个联系表单,我想在 MVC 5.x (razor viewengine) 的两个页面(两个视图)上使用它所以我把表单放在一个名为 _Contact 的局部视图中,并且我读到 RenderAction 是最好的方法如果您的模型中没有局部视图所需的数据,并且它更独立(与视图的其余部分分开)
所以我这样称呼它:
@{ Html.RenderAction("SendMail", "Uk");}
我的英国控制器有这两种方法:
[HttpGet]
public PartialViewResult SendMail()
{
return PartialView("_Contact");
}
[HttpPost]
public PartialViewResult SendMail(FormCollection fc)
{
// send mail using values out of the form (sorry did not feel like building a complete model for it
ViewBag.Succeed = true;
// if smtpclient could not reach server etc. it returns false
return PartialView("_Contact");
}
一切正常,但 PartialView 仅被渲染,而不是在我调用 RenderAction 的占位符上。它工作得很好,但是在发布之后它只显示部分视图而不是“父视图”和共享布局视图等。我希望我说清楚了。如果我需要添加更多信息,请告诉我。
这是我共享视图中的BeginForm:
using (Html.BeginForm("SendMail", "Uk", FormMethod.Post))
【问题讨论】:
-
可能是因为您在 GET 或 POST 的情况下返回了
PartialView
标签: asp.net-mvc razor model-view-controller