我目前在网站的每个页面都使用了_layout.cshtml 我需要在显示为popin的每个页面上放一个表单 所以,我创建了一个新的PartialView(我的表单的内容)及其相应的ViewModel,并在_layout.cshtml中调用它。
但是,我在使用布局的页面的ViewModel和新窗体使用的ViewModel之间存在模型冲突(因为我们不能直接为同一视图使用两个模型)。
传入字典的模型项的类型为“XXX”,但是这样 字典需要“YYY”类型的模型项。
如果没有这种冲突,我们如何在_layout中包含一个表单?
答案 0 :(得分:1)
以下内容适用于每个页面的侧边栏。
在该控制器中,为要返回的视图创建方法,并确保使用[ChildActionOnly]过滤器
public class PartialController : Controller
{
[ChildActionOnly]
public PartialViewResult Alerts()
{
return PartialView("Alerts", messages);
}
}
在您的_layout视图中,您将拥有以下内容:
@Html.Action("Alerts", "Partial")
(代替@ Html.RenderPartial或@ Html.Partial)
听起来您已经拥有了视图所需的内容。
我没有将它与表单一起使用,但它的工作方式应该类似。希望这会有所帮助。