Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.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 在MVC3中,是否可以在视图中创建可重用的函数?_Asp.net_Asp.net Mvc 3 - Fatal编程技术网

Asp.net 在MVC3中,是否可以在视图中创建可重用的函数?

Asp.net 在MVC3中,是否可以在视图中创建可重用的函数?,asp.net,asp.net-mvc-3,Asp.net,Asp.net Mvc 3,我说的不是javascript函数,而是用c编写的服务器端函数 对于视图中的html表,我正在创建类似于可排序列的表头。但是可排序性取决于一个复杂的逻辑,所以我想把逻辑放到一个函数中,而不是为每一列编写它 @阿姆尔加里 感谢您建议customer helper,但是我创建的helper类没有被重新定义 助手代码: namespace MyHtmlHelpers { public static class CustomHelpers { public static

我说的不是javascript函数,而是用c编写的服务器端函数

对于视图中的html表,我正在创建类似于可排序列的表头。但是可排序性取决于一个复杂的逻辑,所以我想把逻辑放到一个函数中,而不是为每一列编写它

@阿姆尔加里 感谢您建议customer helper,但是我创建的helper类没有被重新定义

助手代码:

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>
但是在视图中,@HtmlHelper.MySortColumn和@Html.MySortColumn都没有被重新定义。我是不是遗漏了什么?我甚至重新启动了我的电脑

更新
在web.config中添加命名空间对我不起作用。添加视图页面很有效。

最好使用逻辑创建基类,并从该类派生视图。通常情况下,您不应该显示/共享任何可在视图之间重用的方法。

最好使用逻辑创建基类,并从该类派生视图。通常情况下,您不应该显示/共享任何可在视图之间重用的方法。

我认为您需要了解HTML帮助程序以及如何创建自定义帮助程序:


我认为您需要了解HTML帮助程序以及如何创建自定义帮助程序:

试试这个

试试这个


你在使用区域吗?区域有自己的视图文件夹,通常有自己的web.config。如果是这种情况,您可以尝试将名称空间添加到该web.config

此外,web.config文件通过文件夹按层次进行解析。这意味着您的基本区域目录中可以有web.config,它会影响所有特定于区域的视图


在我的例子中,我有两个web.config文件,我在其中添加了我的名称空间-一个在视图目录中,另一个在区域目录中。

你在使用区域吗?区域有自己的视图文件夹,通常有自己的web.config。如果是这种情况,您可以尝试将名称空间添加到该web.config

此外,web.config文件通过文件夹按层次进行解析。这意味着您的基本区域目录中可以有web.config,它会影响所有特定于区域的视图


在我的例子中,我有两个web.config文件,我在其中添加了我的名称空间-一个在视图目录中,另一个在区域目录中。

目的是在同一个视图中重用,而不是在其他视图中共享。为什么需要将此功能仅隔离到一个视图中?是否存在未提及的安全问题?我正在创建一个实用程序类/方法以便于编码。目的是在同一视图中重用,而不是在其他视图中共享。为什么此功能需要仅隔离到一个视图?是否存在未解决的安全问题?我正在创建一个实用程序类/方法以方便编码。请尝试在视图的第一行添加此选项:“@using MyHtmlHelpers”尝试在视图的第一行添加此选项:“@using MyHtmlHelpers”我没有使用区域。但我可以在查看页面的顶部添加使用语句。我不使用区域。但我可以在查看页面顶部添加语句。