簡體   English   中英

如何在MVC中具有子視圖?

[英]How to have a sub view in MVC?

我對使用ASP.NET中的MVC感到很陌生。 如果我有一個帶有Tournament類(在“詳細信息”模式下)的頁面,並且在其下面有一個PlayRoundHoles類的列表,該類由於復雜的查詢而來自存儲過程。

如何在錦標賽詳細信息視圖下顯示此列表? 我不太了解PlayRoundHoles在控制器以及視圖中的位置?

謝謝

創建一個包含該頁面所有必需內容的ViewModel。 在這種情況下,帶有錦標賽和PlayRoundHoles列表的ViewModel

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); %>

您可以將Tournament實例傳遞給View。 然后在視圖中渲染PlayRoundHoles。

例如,請參見此處http://stephenwalther.com/blog/archive/2009/04/13/asp.net-mvc-tip-50-ndash-create-view-models.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM