我们如何在_layout中包含一个表单?

时间:2012-08-03 13:14:08

标签: asp.net-mvc-3

我目前在网站的每个页面都使用了_layout.cshtml 我需要在显示为popin的每个页面上放一个表单 所以,我创建了一个新的PartialView(我的表单的内容)及其相应的ViewModel,并在_layout.cshtml中调用它。

但是,我在使用布局的页面的ViewModel和新窗体使用的ViewModel之间存在模型冲突(因为我们不能直接为同一视图使用两个模型)。

  

传入字典的模型项的类型为“XXX”,但是这样   字典需要“YYY”类型的模型项。

如果没有这种冲突,我们如何在_layout中包含一个表单?

1 个答案:

答案 0 :(得分:1)

以下内容适用于每个页面的侧边栏。

  1. 为部分视图创建控制器
  2. 在该控制器中,为要返回的视图创建方法,并确保使用[ChildActionOnly]过滤器

    public class PartialController : Controller
    {
        [ChildActionOnly]
        public PartialViewResult Alerts()
        {
    
            return PartialView("Alerts", messages);
        }
    }
    
  3. 在您的_layout视图中,您将拥有以下内容:

    @Html.Action("Alerts", "Partial")
    

    (代替@ Html.RenderPartial或@ Html.Partial)

  4. 听起来您已经拥有了视图所需的内容。

  5. 我没有将它与表单一起使用,但它的工作方式应该类似。希望这会有所帮助。