Несколько частичных просмотров на одной главной домашней странице, asp.net mvc - PullRequest
1 голос
/ 12 апреля 2011

Привет, я все еще новичок в asp.net и что он может делать. Я хочу использовать несколько строго типизированных частичных просмотров на одной главной домашней странице. Я не уверен, как это сделать с хранилищем и Irepository.

Я делал это до сих пор и получаю сообщение об ошибке при попытке загрузить страницу.

  <%Html.RenderPartial("~/Views/Shared/Partial.ascx", Model);%>

Должен ли я использовать viewData для передачи информации в представление? любая помощь будет благодарна вместе с любыми примерами. Кто-нибудь может пожалуйста помочь С уважением

Ответы [ 2 ]

1 голос
/ 12 апреля 2011

Я буду отличаться от других ответов и скажу: Нет . Вы должны не использовать временные данные для передачи информации в частичное представление. В зависимости от того, что вы делаете, вы должны вместо этого создать модель составного представления. Лучшие практики утверждают, что вы не должны передавать Модели непосредственно в свои Представления, а вместо этого должны создавать ViewModels.

См. Принятый ответ здесь о моделях составного вида: BestModel Best Practices

public class CompositeViewModelAB {
    public ViewModelA viewModelA { get; set; }
    public ViewModelB viewModelB { get; set; }
}

Тогда:

@Partial("~/path.cshtml", Model.viewModelA)

Это удовлетворит ваш случай, так как все будет строго напечатано. Ваша домашняя страница строго типизирована для модели составного вида, а ваша часть будет строго типизирована для модели вида, содержащейся в модели составного вида.

1 голос
/ 12 апреля 2011

Должен ли я использовать viewData для передачи информации в представление?

Да.

Если вы не хотите передавать данные через тот же метод контроллерак частичным представлениям, рассмотрите возможность использования RenderAction вместо RenderPartial.Вам потребуется больше методов контроллера, но вам не придется повторять код привязки данных в существующих методах контроллера каждый раз, когда вы используете частичное представление.

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