ASP.NET MVC - строго типизированное представление с частичными представлениями (представление и частичные представления также должны иметь доступ к некоторым глобальным данным) - PullRequest
0 голосов
/ 10 апреля 2009

Рассмотрим следующий сценарий:

Действие Edit () перенаправляется в представление Edit.aspx для визуализации представления.

Edit.aspx состоит из textbox1 и двух частичных представлений (также известных как пользовательские элементы управления): part1.ascx (который имеет textbox2, textbox3) и part2.ascx (в котором есть checkbox1 и checkbox2)

Вы хотите иметь строго типизированное представление для Edit.aspx, скажем, вы используете класс EditViewData.

Вам также необходимо, чтобы Edit.aspx, part1.ascx и part2.ascx имели доступ к некоторой глобальной информации, такой как currentUserID, currentUserLanguage, currentUserTimezone.

Вопросы:

  1. Как вы собираетесь структурировать класс EditViewData?
  2. Как передать данные представления в представление и частичные представления, чтобы объект автоматически заполнялся при отправке формы и возврате в действие Edit () http.post?
  3. Что вы передаете в действие Edit () http.post?

1 Ответ

1 голос
/ 10 апреля 2009

Ваши данные должны выглядеть следующим образом:

public class EditViewData
{
    public int currentUserID { get; set; }
    public string currentUserLanguage { get; set; }
    public string currentUserTimezone { get; set; }
    // ... other stuff
}

После того, как вы строго наберете свой aspx, вам также необходимо строго набрать ascxs. Затем в вашем aspx, когда вы вызываете RenderPartial, просто позвоните, как обычно:

<% using (Html.BeginForm()) %>
<% Html.RenderPartial("part1.ascx" ); %>
<% Html.RenderPartial("part2.ascx" ); %>
<%}%>

Он должен автоматически наследовать модель в элементе управления. Просто помните, что ваша BeginForm должна окружать оба ваших элемента управления (ascxs).

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