Не могу понять что-то фундаментальное в ASP.NET MVC (не работает простой пример кода) - PullRequest
1 голос
/ 12 июля 2009

Я пытаюсь изучить ASP.NET MVC. Пожалуйста, потерпите меня, но asp.net mvc - это первая инфраструктура mvc, которую я когда-либо пытался изучить. Я планирую узнать больше о MVC Framework на разных языках, но сейчас я получил asp.net MVC.

Я довольно хорошо разбираюсь в формах asp.net и люблю их, но хотел бы иметь еще один инструмент asp.net, который дает мне больше свободы с HTML, JavaScript и Ajax.

Вопрос, который у меня есть, заключается в том, как используются частичные виды? Насколько я понимаю, просмотр всех видеороликов заключается в том, что модель для базы данных, контроллер для действий, бизнес-логика и представление - для дисплея.

Однако у меня есть код, который не работает, вид указывает на модель, а не на то, что возвращается из контроллера (пытается вернуть частичное представление). Я был бы очень признателен, если бы кто-нибудь указал мне правильное направление и объяснил, что продолжается.

Ниже - мой простой код, который не работает:

PartialView

<%@ Control Language="VB" Inherits="System.Web.Mvc.ViewUserControl(Of IEnumerable (Of MvcPortfolio.Defaultdb))" %>
    <p>
        <%=Html.ActionLink("Create New", "Create")%>
    </p>

    <table>
        <tr>
            <th></th>
        </tr>

    <% For Each item In Model%>

        <tr>
            <td>
                 <%= item. %>
            </td>
        </tr>

    <% Next%>

    </table>

Модель

Public Function getProjects() As List(Of portfolio_project)
        Using myPortfolio As New PortfolioDataContext
            Try
                Dim projects = (From p In myPortfolio.portfolio_projects _
                                Select p).Take(5)

                Return projects
            Catch ex As Exception
                Return Nothing
            End Try
        End Using
    End Function

Controler: Индекс функции () как ActionResult

    Dim myPortfolio As New Defaultdb ' my controler
    Dim projectsList As List(Of portfolio_project) = myPortfolio.getProjects() 'getting list of all the projects in news

    Return PartialView(projectsList) 'returning partial view.hopefully will work
End Function

и главная страница:

<%@ Page Language="VB" MasterPageFile="~/Views/Shared/Main.Master" Inherits="System.Web.Mvc.ViewPage" %>
<%@ Import Namespace="MvcPortfolio" %>
<asp:Content ID="projectsContent" runat="server" ContentPlaceHolderID="newsContent">
    <%Html.RenderPartial("Indexprojects")%>
</asp:Content>

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

Заранее спасибо.

1 Ответ

2 голосов
/ 12 июля 2009

Дмитрис,

Посмотрите на этот вопрос: Как использовать два экземпляра одного и того же .ascx на одной странице в ASP.NET MVC? . Я думаю, что вы найдете некоторое понимание там.

Кроме того, вы должны потратить некоторое время и пройти учебное пособие по NerdDinner.
http://weblogs.asp.net/scottgu/archive/2009/04/28/free-asp-net-mvc-nerddinner-tutorial-now-in-html.aspx

Частичные виды вызываются из вида, например:

<%= Html.RenderPartial("PartialViewName") %>

Они обычно не вызываются из контроллера.

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