asp.net MVC で最初のサイトを作成していますが、非常に初心者の質問があります。コントローラーで、ページに表示したいもののアクションビューを返していることがわかりました[ウェブサイトのほとんどの例では、ページのコンテンツのみが表示されていることがわかります]。3 つのドロップダウン リスト、2 つのテーブル、2 つのラジオ ボタンなどをロードする必要がある場合はどうすればよいでしょうか。これらの多くのコントロールをページにロードするためのベスト プラクティスと正しい方法は何ですか?
2 に答える
通常表示される例では、MVCのスキャフォールディングを使用しています。これにより、特定のモデルクラスを操作するための非常に単純なコントローラー/アクション/ビューが作成されます。ただし、ページに必要なものを自由に表示できます。ドロップダウンリストを表示する方法の例を次に示します。
まず、ページに表示するすべてのものを保持するオブジェクトを作成します。
public class GameDetailsViewModel
{
public Game Game { get; set; }
public SelectList Players { get; set; }
}
に注意してくださいSelectList
。のソースとして使用されDropDownList
ます。
次に、Action
このオブジェクトを塗りつぶします。
public ViewResult Details(int id)
{
GameDetailsViewModel viewModel = new GameDetailsViewModel();
viewModel.Game = db.Games.Single(g => g.ID == id);
IEnumerable<Player> players = db.Players();
viewModel.Players = new SelectList(players, "ID", "FullName");
return View(viewModel);
}
View()
ページに必要なものをパッケージ化するために作成したオブジェクトを取得するメソッドのオーバーロードに注意してください。
次に、ビューで、HtmlHelperを使用してDropDownListをレンダリングできます。
@using (Html.BeginForm("signup", "games", FormMethod.Post))
{
@Html.DropDownList("playerID", Model.Players, "Select...", null)
<input type="submit" value="Sign up" />
}
これは非常に単純な例ですが、拡張してビューに必要なものを送信し、プレーンな古いHTMLまたは便利なHtmlHelpersを使用してレンダリングすることができます。
クリス
ASP.Net Web フォームのようなコントロールを使用することを期待しているようです。ただし、MVC では、View は標準の HTML で構成されます。あなたが言及したコントロールは、入力選択などです。必要な HTML をレンダリングするためにビューで使用できるさまざまなヘルパー クラスとメソッドがあります。特に、Razor 構文を見てください。
私はいくつかの例を見ることから始めたいと思います.それはより明確になるはずです....ここに良いものがあります: http://www.nerddinner.com/ (ソースコードはこちらhttp://nerddinner.codeplex.com/ ) Amazon からも数冊の本を手に入れるかもしれません。
HTH
フィル