2012-01-03 10 views
0

私はMVCの新人です(剃刀MVC Webサイトを継承しています)。MVC Razor - コントローラーが新しいモデルを作成せずに一部のHTMLからモデルにプロパティを渡す

私は、タブスタイルで作業するAbout Usページ(基本的には、コンテンツをフリックする)を取得しようとしています。

私は...

public class AboutModel 
{ 
    public AboutModel(string selectedAboutTab) 
    { 
     SelectedAboutTab = selectedAboutTab; 
    } 
    private string _selectedAboutTab; 
    public string SelectedAboutTab 
    { 
     get { return _selectedAboutTab ?? "about"; } 
     set 
     { 
      _selectedAboutTab = value; 
     } 
    } 

を次のコンストラクタとプロパティを追加して、タブを変更するには、このようにHTMLを使用することを望んだ...

<a href="/About?selectedAboutTab=directors">directors</a> 

しかし、それはしていないようですコンストラクターに何かを渡してください。

ホームコントローラーの問題はホームページにあると思いますが、これは最初のAboutModelをキックオフしています...しかし、私は「ホームページ」からナビゲートしたら、 'About Us'には仕事が終わるだろう!しかし、「About Us」ページのAboutタブをクリックするたびに実際に新しいモデルが作成されます。

これはホームコントローラのコードのビットです。

public virtual ActionResult About() 
    { 
     ViewBag.CurrentPage = MenuPages.About; 
     return View(new AboutModel("about")); 
    } 

申し訳ありませんが、明らかにMVCの知識が不足しています。誰かが私にSelectedAboutTabプロパティを設定できる最も簡単な方法を教えてもらえますか?私はちょうどホームコントローラーにselectedAboutTabを追加するために必要な

おかげ

答えて

0

...

public virtual ActionResult About(string selectedAboutTab) 
    { 
     ViewBag.CurrentPage = MenuPages.About; 
     return View(new AboutModel(selectedAboutTab)); 
    } 
+0

なぜpublic virtualですか? – Vincenzo

1

あなたはすでにあなた自身の質問に答えたが、一般的なヒントとして、URLヘルパーを使用することを検討してきましたハードコーディングではなく<a href />

@Html.ActionLink("directors", "About", new { selectedAboutTab = "directors" }) 

ビューエンジンは動的にリンクを構築します。

関連する問題