2010-12-19 11 views
0

基本的に、私は深刻に私のsearch-fuを禁止しているWeb開発については何も知らないこのアプリで作業を始めました。おそらく本を読むべきですが、それはそうではありません。私は、ASP.NET MVC3 RC2を使用して、関連アイテムにナビゲートすることができる強く型付けされた部分的なビューを作成しようとしているだけでなく、パンくずのトレイルを維持しています(これはViewBagのListです)。良い類推は、類義語辞典サブビューを持つ辞書ページです。強く型付けされた部分的なナビゲーションナビゲーション

class Entry 
{ 
    string Name; 
    string Definition; 
    IEnumerable<Entry> Synonyms; 
} 

主ページは、単語とその定義、などを示ししかし、アヤックス/ wを交換し、あなたが選択した単語の同義語を表示するにはクリックでき同義語を持つdivが、あります。

私は最初、私はhtmlヘルパーをする必要があると思っていましたが、私のコントローラーからpartialViewを返すことについてはかなり良く見えました。

パズルのすべての部分を一緒につなぎ合わせるのに問題があります。サンプルや概要が素晴らしいでしょう。

ありがとうございます!

答えて

1

男、私は尋ねる前にもうちょっと試してみたはずです。

ここでレシピですので、:

  1. コントローラ内の関数を作るには、Synonym(id) { return PartialView(GetEntry(id)); }
  2. は強く型付けされたエントリに、部分図、Synonym.cshtmlしてください。
  3. 表示Synonym.cshtml内部AJAXナビゲーションリンクについては<div id="Synonyms">@{Html.RenderAction("Synonym", @Model.Id);}</div>
  4. であなたのメインディスプレイでの部分図、簡単に私を倒してしまった。この

    @foreach(Entry syn in @Model.Synonyms) 
        @Ajax.ActionLink((string)@syn.Name, "Synonym", 
         new { id = @syn.Id }, new AjaxOptions { UpdateTargetId = "Synonyms" }) 
    

一つのことだったようなものを使用new { id = @syn.Id }私のコントローラのパラメータ名が実際に番号だったので、私は使用しなければならなかったnew { number = ... }

ああ、私はナビゲーションについて質問しました。私はブラウザの戻るボタンがほとんどのナビゲーションには十分だと思うが、それでも "現在の単語に戻る"リンクを望んでいた。

  1. は、Controller.Synonymは別のパラメータを取るためにint origを修正し、返す前ViewBag.OrigId = orig;を設定します。そのために私は次のようでした。
  2. new { id = @syn.Id, orig = @ViewBag.OrigId }
  3. がSynonym.cshtml内部のバックリンクを作成したと言ってActionLinksを修正 - 他の誰かがアップする場合ActionLinksでnew { id = @Model.Id, orig = @Model.Id }

のようなオブジェクトを渡すために@Html.RenderActionへの呼び出しを修正@Ajax.ActionLink("Back To Current Word", "Synonym", new { id = @ViewBag.OrigId, orig = @ViewBag.OrigId }, new AjaxOptions { UpdateTargetId = "Synonyms" })

  • 私のものを書き直したいという良い答えがあれば、代わりにそれらを受け入れるでしょう。 Controller.Synonymへの2番目のパラメータやその他の単純化や改良を避ける方法など、何かが欠落しているかどうかについてのフィードバックが大好きです。

  • 関連する問題