使用Html Helper在页面末尾插入脚本

时间:2013-06-28 15:14:55

标签: c# asp.net-mvc-4 html-helper

我有一个生成简单HTML表的Html Helper。我想在同一个帮助器中生成一些脚本来处理这个表,比如编辑行,重新排序等。

我已经有了这些脚本,我的问题是:

如何通过HTML帮助程序生成这些脚本,然后将其放在页面末尾?

我目前在html表的末尾添加了脚本,就像单个字符串(表格和脚本的Html)并将其打印在页面上,有没有更好的方法来做到这一点,任何最佳实践来解决这个问题问题

为了使问题更清楚,这是我对助手的签名:

public static MvcHtmlString CustomTableRepository
       (this HtmlHelper html, string idTable, Hashtable columns, string jsonRepo)

其中:

idTable: Id of the tag table
columns: The key/value of each th cell of the columns
jsonRepo: jSon repository, where I will take the values of my table and draw it

1 个答案:

答案 0 :(得分:3)

这听起来并不是特别糟糕,唯一的缺点是 1.它不会被缩小 2.如果您有多个表,则表示您有重复的脚本 3.它不会被缓存,因此每次页面加载时都会发送

编辑:新建议

创建并向viewbag添加列表。在您的html助手中,将所需的脚本添加到此列表中。在布局结束时,使用linq选择唯一的脚本名称,然后渲染它们。

陈旧的建议 - 如果你愿意,请阅读。它包含好的做法。

如果在大多数页面上使用该表,只需将其放在脚本文件夹中并将其包含在您的布局中。

如果只在几页上使用它,你会想要把它保存在帮手中。您始终可以将脚本移动到脚本文件夹中,例如脚本>元素> Table.js。这可能有一定道理。然后通过函数将它包含在你的帮助器中。就像你使用jquery一样,你可以写文本

<script> $(function(){ $.getScript("Scripts/Element/Table.js") }); </script>