2011-02-02 4 views
1

私は非常にasp.net mvcの新人です。それは "幼い"問題かもしれません。ViewData.ModelとViewの引数によるデータの受け渡しの違いは何ですか?

ViewData.Model=obj; 
return View(); 

又は

return View(obj); 

のそれぞれについて長所と短所は何次のように:-)

我々は(もちろんとりわけ)は、2つの方法を使用して、コントローラ内のデータを渡すことができアプローチ?私はどんな違いがあるとは思わない

+1

私の理解から、違いはありません。 –

+2

しかし、実際には、2番目のオプションを使用してください。それはかなり明らかです。 –

答えて

3

どちらのスニペットは、同じです最初のオプションはオブジェクトモデルに直接渡され、2番目のオプションはビューとしてパラメータとして渡されますが、最終的にオブジェクトモデルに渡されます。

あなたはView()方法に見れば、あなたは内側と呼ばれる最初のスニペットを見ることができます。

protected internal ViewResult View(object model) { 
    return View(null, null, model); 
} 

protected internal virtual ViewResult View(string viewName, string masterName, object model) { 
    if (model != null) { 
     ViewData.Model = model; 
    } 

    .... 
} 

したがって、どちらも同じですが、最初は直接アプローチです。

1

技術的には...

が、私はそれだけで「感じて」私にある第2のアプローチを使用することを好むよりよい...

関連する問題