簡體   English   中英

RazorView,為多個模板使用相同的模型對象

[英]RazorView, use same model object for more than one template

嘗試使用同一個對象渲染兩個單獨的模板時遇到問題。

我有一些看起來像這樣的東西:

@Html.DisplayFor(m => Model, "TemplateOne")
@Html.DisplayFor(m => Model, "TemplateTwo")

第一個模板獲得渲染,第二個模板不會。

我使用.NET Reflector逐步查看代碼,看看發生了什么,並發現了這個:

if (html.ViewDataContainer.ViewData.TemplateInfo.VisitedObjects.Contains(item))
{
     return string.Empty;
}

TemplateHelpers.TemplateHelper(HtmlHelper html,ModelMetadata metadata,string htmlFieldName,string templateName,DataBoundControlMode mode,object additionalViewData,ExecuteTemplateDelegate executeTemplate)

因此,它檢查模型/對象是否已用於渲染模板,然后如果它在我的示例中具有哪個模板/對象,則返回“”,以便不顯示第二個模板。

我有一個解決方法是克隆第二個模板的模型,但我想知道是否還有其他我可以做的事情,像我可以設置的配置選項?

史蒂夫

我現在的方法就是創造

public class ModelWrapper{

      public object Model { get; set}
}

並將此設置傳遞給我實際需要的任何東西。

不幸的局限

暫無
暫無

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

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