-1

ここではHtml.Action、(Books.cshtml) 部分ページに一連の書籍を表示するために使用しています。

ルート ディクショナリの値を実際に渡していますが、ルート ディクショナリの値を取得する方法がわかりません。また、部分ページ ("Books.cshtml") で値Controllerを取得することもできます。Route Dictionary

インデックス.cshtml

@{RouteValueDictionary objRoute = new RouteValueDictionary();
  objRoute.Add("Book1", "DavinciCode");
  objRoute.Add("Book2", "Pirates");
  objRoute.Add("Book3", "Ghost");
}

@Html.Action("Books", "Home", objRoute)

Books.cshtml(部分ページ)

<p style="color:Blue;">
    The list of books are as folows
        <p>@ Book items</p>  
    //Here I need to display list of books (i.e) routevalue Dictionary values
</p>

ホームコントローラー:

public ActionResult Books()
{
    return PartialView();
}
4

4 に答える 4

1

RouteValueDictionaryを使用してモデルを保存することは最善のアイデアではないと思います。部分ビューでもモデルを使用できます。

必要なデータ、つまり のリストを表す部分ビューのモデルを作成しますBook。ではBook、ブックの詳細ビューを表示するために必要なキー (つまり、Idプロパティ)を含む、各ブックに必要なデータを配置します。

public class Book
{
    public int Id { get; internal set; }
    public string Name { get; internal set; }
    // ...
}

次に、部分ビューに次のようなモデルを作成しList<Book>ますBooks.cshtml

@model IList<Book>


<p style="color:Blue;">
     The list of books are as follows:

     <ul>
          @foreach (var book in @Model)
          {
               @Html.ActionLink(book.Name, "BookDetails", new { id = book.Id }) 
          }
     </ul>
于 2013-08-08T06:31:48.223 に答える
0

次の行に沿ってルート データにアクセスできるはずです。

ViewContext.RouteData.Values["controller"]
于 2013-08-08T06:12:43.903 に答える
-1

それらはメソッドの引数として表示される必要があります-興味のあるものを宣言するだけです:

public ActionResult Books(string Book1, string Book2, string Book3)
{
    return PartialView();
}
于 2013-08-08T06:15:12.673 に答える