Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.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 4 htmlHelper vs部分视图_Asp.net Mvc 4_Partial Views_Html Helper - Fatal编程技术网

Asp.net mvc 4 htmlHelper vs部分视图

Asp.net mvc 4 htmlHelper vs部分视图,asp.net-mvc-4,partial-views,html-helper,Asp.net Mvc 4,Partial Views,Html Helper,我无法决定是否应该使用htmlHelper或局部视图来解决我的问题 我希望重用以下代码: <div style="width: 500px; float: left;"> <div class="box effect2"> <span><a href="@Url.Action("someMethod", "somController")"> <img src="@Url.Content("~someurl)" /&

我无法决定是否应该使用htmlHelper或局部视图来解决我的问题

我希望重用以下代码:

<div style="width: 500px; float: left;">
  <div class="box effect2">
    <span><a href="@Url.Action("someMethod", "somController")">
        <img src="@Url.Content("~someurl)" /></a></span>
  </div>
</div>

href和图像源将是参数


最好的方法是什么

如果有大量标记,请使用局部视图。Html助手应仅用于生成Html的一小部分。在这种情况下,你真的是在极限上,两种方法都可以。在这个特定的例子中使用您喜欢的一个。我可能会在这里使用自定义HTML帮助程序,因为这似乎是一个非常常见的小部件,如果您将其合并到程序集中,它可以在各种应用程序中重用。

好的,谢谢您提供的信息。我已经按照您的建议创建了一个html帮助程序。是否通过AJAX调用您的代码也可能是一个标准。@DarinDimitrov我认为性能方面也应该在这里考虑。当使用局部视图时,ControllerFactory将创建局部视图的控制器(如果局部视图有控制器),这需要花费时间。ControllerFactory将首先获取局部视图的位置(它缓存局部视图的位置,但仍然…),并创建一个控制器实例,该实例不是一个小对象,并且会消耗一些内存。事件如果局部视图没有任何控制器(例如RenderPartial),它仍然必须搜索局部视图。因此,我认为使用HtmlHelpers会更好。你觉得怎么样?@sotn,搜索部分视图几乎不需要花费什么,因为它被缓存了。