2011-05-19 93 views
0

我在asp.net MVC中創建了我的第一個網站,我在腦海裏有一個非常初學的問題。我已經看到,在控制器中,我們正在返回actionview以顯示我們想要在頁面中顯示的內容[網站中的大多數示例,我可以看到他們只顯示頁面中的內容]。如果我必須加載3個下拉列表,2個表格,2個單選按鈕等等,該怎麼辦?在頁面上加載這些控件的最佳實踐和正確方法是什麼?在ASP.NET MVC中加載多個控件

回答

2

克里斯

這聽起來像你期待在ASP.Net Web窗體像一個不使用的控制。但是,對於MVC,視圖由標準HTML組成。你提到的控件可以只是輸入選擇等等。您可以在視圖中使用各種幫助程序類和方法來幫助您呈現所需的HTML - 特別是查看Razor語法。

我會用看幾個例子開始,它應該是更清楚.... 這裏有一個很好的一個:http://www.nerddinner.com/(源代碼在這裏http://nerddinner.codeplex.com/) 也許拿起幾本書從亞馬遜以及。

HTH

菲爾

1

您通常看到使用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