system.web.mvc.htmlhelper不包含内容定义

时间:2011-11-30 12:39:20

标签: asp.net-mvc asp.net-mvc-3 razor

我正在尝试在app_code文件夹下创建一个asp.net MVC 3 Razor帮助器,如下所示:

@using System.Web.Mvc;

@helper Script(string scriptName, System.Web.Mvc.HtmlHelper url){    
      <script src="@url.Content"~/Scripts/" + scriptName)" type="text/javascript"></script>
}

但我收到的错误是:

system.web.mvc.htmlhelper不包含内容定义

在以下行:

 <script src="@url.Content"~/Scripts/" + scriptName)" type="text/javascript"></script>

3 个答案:

答案 0 :(得分:1)

错误非常有用 - HtmlHelper不包含方法Content(), UrlHelper 。试试这个:

@helper Script(string scriptName, System.Web.Mvc.UrlHelper url){    
  <script src='@url.Content("~/Scripts/" + scriptName)' type="text/javascript"></script>
}

答案 1 :(得分:0)

你可以这样,但这只能在一个视图中使用。

如果你想从其他视图访问它,你应该写一个真正的HtmlHelper,如

HtmlHelper示例

创建静态类

public static class TestClass
{
    public static IHtmlString Script(this HtmlHelper helper, string script)
    {
        // if you need the UrlHelper do this
        // var urlHelper = new UrlHelper(helper.ViewContext.RequestContext);
        return new HtmlString(string.Format("<script src=\"~/Scripts/{0}\" type=\"text/javascript\"></script>", script));
    }
}

然后你可以从你的视图中调用它

@Html.Script("jquery-1.5.1.js")

确保您查看知道您的班级所在的命名空间。

希望这会有所帮助

答案 2 :(得分:0)

我不知道为什么,但这对我不起作用。 运行后,所有jQuery控件都不起作用,但在源代码中我看到它。

如果我试图加入

<script src="/Scripts/jquery-1.7.1.min.js" type="text/javascript"> </script>

所有控件都有效。