0

我目前有一个 _layout.cshtml 用于我网站的每个页面。
我需要在显示为 popin 的每个页面上放置一个表单。
因此,我创建了一个带有相应 ViewModel 的新 PartialView(我的表单的内容),并在 _layout.cshtml 中调用它。

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

传入字典的模型项是“XXX”类型,但该字典需要一个“YYY”类型的模型项。

我们如何在 _layout 中包含一个表单而不发生这种冲突?

4

1 回答 1

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. 听起来您已经拥有了视图所需的东西。

我没有将它与表单一起使用,但它应该类似地工作。希望这可以帮助。

于 2012-08-03T14:01:41.630 回答