Как загрузить несколько элементов управления в представлении - PullRequest
1 голос
/ 02 июня 2011

Я до сих пор не знаю, как начать подготовку подобной формы в MVC 3.

Я новичок, и все, что я узнал до сих пор, - это привязать данные из контроллера к строго типизированному представлению.Но, как я знаю, мы можем вернуть только одну переменную из возвращаемого значения

public ActionResult (int id) {// Выполнить некоторую логику return View (role);}

Теперь приведенный выше код возвращает список ролей в представление.Но как бы я передавал другие детали, такие как состояние лицензии, организация и т. Д. *

Еще один сложный пример:

Допустим, в моей форме необходимо отобразить такие сведения, как страна [раскрывающийся список], штат [Раскрывающийся список], Отдел [ComboBox list], Организация [список переключателей], Список всех сотрудников [таблица / сетка]

Как бы отобразить все значения элементов управления с одним RETURN?

Примечание: * Я предполагаю, что все данные, такие как роль, состояние лицензии, организация и т. Д., Которые я извлекаю из базы данных.

Надеюсь, я объясню свое объяснение, пожалуйста, дайте мне знать, если мне нужно объяснить это немного дальше.

Кроме того, я прошу прощения за этот глупый вопрос, потому что я нахожусь на моей самой первой стадии изучения MVC

enter image description here

1 Ответ

1 голос
/ 02 июня 2011

Вы бы написали модель представления:

public class MyViewModel
{
    public SomeModel1 Section1 { get; set; }
    public SomeModel2 Section2 { get; set; }
    public SomeModel3 Section3 { get; set; }
}

, и в действии контроллера вы вернете эту модель представления представлению:

public class HomeController: Controller
{
    public ActionResult Index()
    {
        var model = new MyViewModel
        {
            Section1 = ...,
            Section2 = ...,
            Section3 = ...,
        };
        return View(model);
    }

    [HttpPost]
    public ActionResult Index(MyViewModel model)
    {
        ... process the model when the form is submitted
    }
}

и представлению:

@model MyViewModel
@using (Html.BeginForm())
{
    @Html.EditorFor(x => x.Section1)
    @Html.EditorFor(x => x.Section2)
    @Html.EditorFor(x => x.Section3)
    ...
}

и, конечно, у вас будут строго типизированные шаблоны редактора для каждого раздела:

  • ~ / Views / Shared / EditorTemplates / SomeModel1.cshtml
  • ~ / Views/Shared/EditorTemplates/SomeModel2.cshtml
  • ~ / Views / Shared / EditorTemplates / SomeModel3.cshtml
  • ...

, которая будет представлять частичное содержимоекаждый раздел

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