Как иметь подпункт в MVC? - PullRequest
       24

Как иметь подпункт в MVC?

1 голос
/ 25 октября 2009

Я новичок в этом MVC в ASP.NET. Если у меня есть страница с классом Tournament (в режиме Detail), а под ней - список класса PlayRoundHoles, который происходит из хранимой процедуры из-за сложного запроса.

Как мне добиться этого, чтобы отобразить этот список в режиме подробного просмотра турнира? Я не совсем понимаю, где находится этот PlayRoundHoles в контроллере, а также в представлении?

Спасибо

Ответы [ 2 ]

1 голос
/ 25 октября 2009

Создайте ViewModel, которая содержит весь необходимый контент для этой страницы. В этом случае ViewModel с турниром и списком PlayRoundHoles

public class MyViewModel
{
    public Tournament MyTournament { get; set; }
    public IList<PlayRoundHoles> MyPlayRoundHoles { get; set; }
}

Тогда ваш метод действия должен возвращать этот сильно просматриваемый тип.

public class TournamentController
{
    public ActionResult View(int tournamentId)
    {
        var t = //get tournament
        var p = //call sproc (may use the tournament id)

        MyViewModel model = new MyViewModel();
        model.MyTournament = t;
        model.MyPlayRoundHoles = p;

        return View(model);
    }
}

Ваш взгляд может выглядеть примерно так:

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<MyViewModel>" %>

//tournament details using Model.MyTournament
//play round holes details using Model.MyPlayRoundHoles

Чтобы улучшить это, вы можете создать PartialView, который разделяет отображение ваших PlayRoundHoles

<% Html.RenderPartial("MyPlayRoundHoles", Model.MyPlayRoundHoles); %>
0 голосов
/ 25 октября 2009

Вы можете передать экземпляр Турнира для просмотра. А затем визуализировать PlayRoundHoles в представлении.

например, см. Здесь http://stephenwalther.com/blog/archive/2009/04/13/asp.net-mvc-tip-50-ndash-create-view-models.aspx

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