我不是在讨论javascript函数,而是用c#编写的服务器端函数。
对于我视图中的html表,我创建的表标题就像可排序的列一样。但是可分类性取决于复杂的逻辑,所以我想把逻辑放到一个函数中,而不是为每一列写入它。
@Amr ElGarhy 感谢您建议客户帮助程序,但我创建的帮助程序类没有被重新启用。
帮助代码:
namespace MyHtmlHelpers
{
public static class CustomHelpers
{
public static string MySortColumn(this HtmlHelper helper, string label, string col, string dir, UrlHelper url)
{
return string.Empty;
}
}
}
的web.config:
<pages>
<namespaces>
<add namespace="System.Web.Helpers" />
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.WebPages"/>
<add namespace="MyHtmlHelpers"/>
</namespaces>
</pages>
但是在View中,@ HtmlHelper.MySortColumn和@ Html.MySortColumn都没有被重新命名。我在这里错过了什么吗?我甚至重新启动了我的电脑。
更新 在web.config中添加命名空间对我来说不起作用。在视图页面中添加工作。
答案 0 :(得分:3)
我认为您需要了解HTML帮助程序以及如何创建自定义程序:
http://www.asp.net/mvc/tutorials/creating-custom-html-helpers-cs
http://www.asp.net/mvc/videos/how-do-i-create-a-custom-html-helper-for-an-mvc-application
答案 1 :(得分:2)
试试这个
答案 2 :(得分:0)
最好使用逻辑创建基类,并从此类派生您的视图。通常,您不应透露/分享在视图之间重用的任何方法。
答案 3 :(得分:0)
你在使用区域吗?区域有自己的视图文件夹,通常有自己的web.config。如果是这种情况,您可以尝试将命名空间添加到该web.config。
此外,web.config文件通过文件夹分层解析。这意味着您可以在基本区域目录中使用web.config,该目录会影响所有特定于区域的视图。
在我的情况下,我有两个web.config文件,我添加了我的命名空间 - 一个在View目录中,另一个在Area目录中。