2011-07-14 7 views
3

をレイアウトするためにデータを渡す私はここに私の方法を、レイアウトを使用して、すべてのページへのカテゴリを表示する: ここで私のモデル(NewsCategoriesModel)PartialviewとMVC3

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"); 

をレイアウトすることpartialviewを印刷するが、私はオブジェクト参照がオブジェクトのインスタンスに設定されていません。

@foreach (var item in Model) { 

答えて

7

であなたの部分図がそれに必要モデルを渡す必要があります。といった。

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

モデルをそのままにしておくと、現在のビューモデルを部分的に渡すだけです。 ViewBagを使用することもできます。

マスター/レイアウトページからパーシャルを呼び出す場合は、1ページごとにモデルを使用することはできません。したがって、この場合には、部分図にあなたのニュース項目のモデルを返しコントローラ/アクションを作成し、

その後、指定されたアクションを実行して、部分ビューを表示します
@Html.Action("NewsCategories", "NewsController"); 

...で呼び出す方が良いですそのアクションが呼び出す。

+0

レイアウトにデータを渡したいのですが、どのようにしてビューバックを設定できますか? Datasはデータベースからlinqを使用してSQLに到達しますか? –

+0

ここには、あなたが探している情報を提供するブログ記事があります。 http://rachelappel.com/razor/partial-views-in-asp-net-mvc-3-w-the-razor-view-engine/ –

+0

また、マスターページに部分を追加しようとしている場合(別名、レイアウトページ)。 @ Html.Actionの使用を検討したい場合は、コントローラ/アクションを呼び出すことができます。コントローラ/アクションは他のアクションと同様に機能しますが、結果を部分的なビューに渡します。マスター/レイアウトページに最適です。 –

関連する問題