2009-05-07 5 views
0

私はMVCを初めてお使いです。私はasp.net MVCでWebアプリケーションを開発しています。登録ユーザーがProfileView.aspxページにリダイレクトされた後、ユーザーが登録できるフォームがあります。ここまですべてが問題ありません。asp.net mvcのオブジェクトリストを表示

ここで、そのユーザーが投稿した記事の見出しをプロフィールの下に表示したいとします。 今、私は次のコードを使用してメートル:あなたがあなたのページには、ビューページから継承することになるでしょうし、あなたが.aspxのマークアップ内であなたのモデルを使用することができ、事前に
Baljit Grewal

答えて

1

は、私は2つのオプションを考えることができます:

記事を保存するには、ViewData辞書を使用します。

public ActionResult ProfileView(int id) 
{ 

Profile profile = profileRepository.GetProfileByID(id); 
var articles = articlesRepository.FindArticlesByUserID(id).ToList(); 
ViewData["Articles"] = articles; 
return View("ProfileView", profile); 
} 

また、ViewDataの使用を避けたい場合は、ViewModelを作成します。 ViewModelは、データ転送オブジェクトの一種です。あなたはこのようProfileViewModelクラスを作成することができます。

public class ProfileViewModel 
{ 
    public Profile Profile{ get; set; } 
    public IList<Article> Articles { get; set; } 
} 

またはちょうどあなたがあなたのビューで使用しているプロファイルのプロパティが含まれ、これは容易な結合になりますが、あなたはあなたにあなたのモデルから、あなたのViewModelに値をコピーする必要がありますコントローラ:

public class ProfileViewModel 
{ 
    public int Id{ get; set; } 
    public string Name { get; set; } 
    ....... 
    public IList<Article> Articles { get; set; } 
} 

あなたは(マッパーをオブジェクトへのオブジェクト)AutoMapperを見て、この最後のオプションのために行く場合。

+0

こんにちはAriel Popovsky、 私はMVCに新しいので、あなたは私の詳細をMVCを学ぶことができますか? ありがとうございます – Grewal

+0

確かに、私はシャープアーキテクチャ、ASP.net MVCに基づいてフレームワークを開始することをお勧めします。サンプルアプリケーションとコード生成テンプレートが含まれています。 http://code.google.com/p/sharp-architecture/ Billy McCaffertyがクールなチュートリアルを作成しました http://sharp-architecture.googlecode.com/svn/trunk/docs/Sharp_Architecture_Reference_Guide.doc Kazi Manzur Ra​​shid MVCに関する素晴らしい記事を掲載した素晴らしいブログがあります。 http://weblogs.asp.net/rashid/archive/2009/04/01/asp-net-mvc-best-practices-part-1 .aspx そして最後に私自身のブログ:http://geekswithblogs.net/apopovsky/Default.aspx私はクールなものを投稿しようとします。 –

+0

アリエル・ポポフスキー – Grewal

0

を支援するための

public ActionResult ProfileView(int id) 
{ 

Profile profile = profileRepository.GetProfileByID(id); 

var articles = articlesRepository.FindArticlesByUserID(id).ToList(); 

return View("ProfileView", profile); 

} 

感謝を以下のような

+0

申し訳ありませんeazel、私のコードの最終行を修正しました。どうすれば私のビューページに記事を渡すことができますか? 戻るビュー( "ProfileView"、profile); あなたのお返事ありがとうございます – Grewal