Загрузка нескольких элементов управления в ASP.NET MVC - PullRequest
0 голосов
/ 19 мая 2011

Я создаю свой первый сайт в asp.net MVC, и у меня есть очень начинающий вопрос.я видел, что в контроллере мы возвращаем actionview для того, что мы хотим отобразить на странице [В большинстве примеров на веб-сайтах я вижу, что они только отображают контент на странице].Что делать, если мне нужно загрузить 3 раскрывающихся списка, 2 таблицы, 2 переключателя и т. Д. Каков наилучший способ и правильный способ загрузки этих многочисленных элементов управления на странице?

Ответы [ 2 ]

2 голосов
/ 19 мая 2011

Chris

Похоже, вы ожидаете использовать элементы управления, как в ASP.Net Web Forms. Однако в MVC представление состоит из стандартного HTML. Упомянутые вами элементы управления могут быть просто выбором ввода и так далее. Существуют различные вспомогательные классы и методы, которые вы можете использовать в представлении, чтобы помочь вам отобразить нужный вам HTML-код. В частности, обратите внимание на синтаксис Razor.

Я бы начал с рассмотрения нескольких примеров, и это должно быть понятнее ... Вот хороший: http://www.nerddinner.com/ (исходный код здесь http://nerddinner.codeplex.com/) Может быть, забрать пару книг из Амазонки.

НТН

Phil

1 голос
/ 19 мая 2011

В примерах, которые вы обычно видите, используется скаффолдинг 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(), который принимаетобъект, который мы создали для упаковки того, что нам нужно на странице.

Затем в представлении вы можете использовать HtmlHelper для рендеринга DropDownList:

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

Это очень простой пример., но вы можете расширить его, чтобы отправлять все, что вы хотите, в представление, а затем визуализировать его с использованием простого старого HTML или удобного HtmlHelpers .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...