Asp.net mvc MVC4自定义HTML帮助程序与自定义显示模板
我有一个obj结构,如下所示 比较对象:Asp.net mvc MVC4自定义HTML帮助程序与自定义显示模板,asp.net-mvc,asp.net-mvc-4,html-helper,display-templates,Asp.net Mvc,Asp.net Mvc 4,Html Helper,Display Templates,我有一个obj结构,如下所示 比较对象: public List<string> Objs { get; set; } public string PropName { get; set; } public List<ComparedObject> CObjs { get; set; } 公共列表对象{get;set;} 公共字符串PropName{get;set;} ModelObj: public List<string> Objs { get; s
public List<string> Objs { get; set; }
public string PropName { get; set; }
public List<ComparedObject> CObjs { get; set; }
公共列表对象{get;set;}
公共字符串PropName{get;set;}
ModelObj:
public List<string> Objs { get; set; }
public string PropName { get; set; }
public List<ComparedObject> CObjs { get; set; }
公共列表CObjs{get;set;}
我有一个场景,在这个场景中,我需要循环“CObjs”并呈现List
对象的比较表,该对象的长度为3条记录(一行)
我使用自定义HTML帮助程序实现了这一点,使其足够通用,可以在其他屏幕中使用。但是,有人告诉我,在这种情况下,自定义显示模板的速度更快,性能更好
请解释什么是最好的选择以及为什么
提前谢谢 如果您正确编写了html帮助程序,那么没有理由认为它与显示模板的
DisplayTempate
不同,您需要使用DisplayFor()来显示模板
method,这也是一种html帮助程序扩展方法。我同意这一点,但我的架构师告诉我,与html帮助程序相比,显示模板的性能更好。所以,我完全搞不懂这个问题。请让我知道你的想法。为什么你认为它会更快?为了呈现DisplayTemplate
,您需要使用@Html.DisplayFor()
这是一个Html帮助程序DisplayFor()
依次调用TemplateHelper
方法来获取ViewEngine
并找到模板,最终基于模板中的所有html帮助器方法呈现它。它的速度太快了,我没有费心运行性能测试,但是使用DisplayFor()
几乎肯定会比使用自己的帮助程序慢,但这当然取决于帮助程序中的代码。我唯一的评论是,使用HTML帮助程序,您在代码中呈现HTML,其中显示模板是文件,因此,前端人员可能更容易修改、附加类等。至于性能,我支持Stephen。