asp.net MVC База данных вызова в частичном представлении - PullRequest
1 голос
/ 15 декабря 2009

Я хотел бы сделать вызов базы данных в частичном представлении в asp.net MVC. Я не уверен, как на самом деле это сделать. Я пытаюсь получить экземпляр хранилища, чтобы я мог сделать пару звонков в БД построить некоторую информацию на странице. Не уверен, что я даже близко, но есть ли у кого-нибудь идеи?

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>



<%
    if (Request.IsAuthenticated)
    {
        var repos = MyMVC.Models.Repository.IRepository<UserProfile>();

    }
%>

Ответы [ 2 ]

5 голосов
/ 15 декабря 2009

Вы пытаетесь нарушить принципы архитектуры Model-View-Controller.

Правильный способ реализовать это - создать частичное представление и позволить вашему контроллеру получить данные ... а затем передать их в частичное представление для рендеринга.

0 голосов
/ 15 декабря 2009

Попробуйте использовать MvcContrib . Проверьте метод RenderAction. Это позволяет вам сохранять доступ к данным в контроллере и просматривать содержимое в представлении, не смешивая обязанности.

<div id="some-partial-container">
    <% Html.RenderAction<MyController>(c => c.SomeAction()); %>
</div>

Кроме того, RenderAction будет в MVC 2, что меня очень радует. Тем не менее, он не будет поддерживать обобщенную реализацию (когда я последний раз проверял).

<div id="some-partial-container">
    <% Html.RenderAction("SomeAction", "MyController"); %>
</div>

Фил Хаак на RenderAction : http://haacked.com/archive/2009/11/18/aspnetmvc2-render-action.aspx

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