0

我在 asp.net MVC 中创建我的第一个站点,并且我有一个非常初学者的问题。我已经看到,在控制器中,我们正在返回我们想要在页面中显示的操作视图 [我可以看到网站中的大多数示例它们只显示页面中的内容]。如果我必须加载 3 个下拉列表、2 个表格、2 个单选按钮等怎么办?在页面上加载这些控件的最佳做法和正确方法是什么?

4

2 回答 2

2

克里斯

听起来您希望像在 ASP.Net Web 窗体中那样使用控件。但是,对于 MVC,视图由标准 HTML 组成。您提到的控件可以只是输入选择等。您可以在视图中使用各种帮助程序类和方法来帮助您呈现所需的 HTML - 特别是查看 Razor 语法。

我先看几个例子,它应该更清楚......这是一个很好的例子:http: //www.nerddinner.com/(源代码在这里http://nerddinner.codeplex.com/ ) 也许也可以从亚马逊上买几本书。

高温高压

菲尔

于 2011-05-19T07:50:29.690 回答
2

您通常看到的示例使用 MVC 的脚手架,它创建了一个非常简单的 Controller/Actions/Views 来操作某个 Model 类。但是您可以自由地在页面中显示您想要的任何内容。这是有关如何显示下拉列表的示例。

首先创建一个对象,该对象将包含您要在页面上显示的所有内容:

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()方法的重载,它使用我们创建的对象来打包我们在页面上需要的东西。

然后在 View 上,你可以使用一个 HtmlHelper 来渲染一个 DropDownList:

@using (Html.BeginForm("signup", "games", FormMethod.Post))
{
    @Html.DropDownList("playerID", Model.Players, "Select...", null)
    <input type="submit" value="Sign up" />
}

这是一个非常简单的示例,但是您可以扩展它以将您想要的任何内容发送到 View,然后使用普通的旧 HTML 或方便的HtmlHelpers呈现它。

于 2011-05-19T08:20:43.517 回答