[英]MVC Partial view to Display list
我有一個操作結果返回一個列表
public ActionResult GetData(Profiles profiles)
{
Vertical Vdata = new Vertical();
List<Ver> Vertical = new List<Ver>();
//Code to fill list
return View(Vertical);
}
然后局部顯示列表
@model IEnumerable< List<VerticalContainer.Models.Vertical>>
@foreach(var item in Model)
{
<span>@item.name</span>
}
我不確定如何從主視圖渲染部分視圖
@Html.Action("GetData")??
Html.Action通過什么? 還是我應該使用Partial / RenderPartial?
1-正確的動作呈現方式如下:
@Html.RenderAction("ACTION_NAME","CONTROLLER_NAME")
根據您的解決方案,使用正確的值替換操作名稱和控制器名稱。
2-對於傳遞的模型,如果在具有Profiles
的Model
屬性的視圖中渲染此動作,則不必指定要傳遞給該動作的模型,因為它將隱式地從父級讀取模型視圖。
如果不是這種情況,則需要將Profiles
值存儲在一個中等變量中(例如,在ViewBag
屬性中),然后在調用該操作時將其傳遞,因此它應在此傳遞的模型上起作用而不是起作用在父視圖上。
例如: @Html.RenderAction("ACTION_NAME","CONTROLLER_NAME", YOUR_MODEL_VALUE_HERE)
建議 :如果此局部視圖僅呈現已傳遞的列表,則可以跳過創建提到的操作的過程,而只需進行調用即可呈現部分視圖,並將正確的列表傳遞給該局部視圖以便可以使用。
為了更加清楚,使用您的問題,我可以看到名為GetData
的操作只是從傳遞的Profiles
模型中構造了名為Vertical
的列表,因此您可以在原始操作( Index
, Details
, WHAT_EVER_THE_NAME_IS
)中構造此列表並將其存儲在ViewBag
,則可以調用RenderParial
而不是RenderAction
,這將導致與您提到的方案相同的輸出。
example: @{ Html.Partial("ViewName", YOUR_MODEL_HERE);}
@{Html.RenderAction("actionName","controllerName");}
從主視圖中,您可以簡單地將“ 部分視圖”呈現為:
@Html.Partial("_PartialViewName", VerticalList);
在這種情況下, VerticalList將是您在控制器操作中填充的VerticalContainer.Models.Vertical類型的列表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.