Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc MVC4自定义HTML帮助程序与自定义显示模板_Asp.net Mvc_Asp.net Mvc 4_Html Helper_Display Templates - Fatal编程技术网

Asp.net mvc MVC4自定义HTML帮助程序与自定义显示模板

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

我有一个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; 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。