[英]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.