部分查看并将数据传递给布局MVC3

时间:2011-07-14 02:00:19

标签: asp.net asp.net-mvc-3 layout

我想通过布局和我的方式显示所有页面的类别: 这里我的模型(NewsCategoriesModel)

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Globalization;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Security;


namespace GiaoXuKeSat.Models
{
    public class NewsCategoriesModel
    {
        public int NewsCategoriesID { get; set; }
        public string NewsCategoriesName { get; set; }
    }
}

这里是Partialview(_NewsCategories)

@using System.Linq;


@using System.Linq;
@model IEnumerable<GiaoXuKeSat.Models.dms_NewsCategory>

@foreach (var item in Model) {
  <ul id="dmsMenuULUL">
     <li>@item.NewsCategoriesName</li>
</ul>     
}

我将部分视图打印到布局

@Html.Partial("_NewsCategories");

但是我没有将Object引用设置为对象的实例。 在

@foreach (var item in Model) {

1 个答案:

答案 0 :(得分:7)

您需要将部分视图所需的模型传递给它。如。

@Html.Partial("_NewsCategories", Model.NewsItems);

如果您退出模型,则只需将当前视图模型传递给部分模型。您也可以使用ViewBag。

如果您从主页面/布局页面调用Partial,则不太可能在每个页面上都有您的模型。所以在这种情况下,最好创建一个控制器/动作,将您的新闻项目模型返回到局部视图,然后调用...

@Html.Action("NewsCategories", "NewsController");

然后将运行指定的操作并显示操作调用的部分视图。