我正在尝试在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>
答案 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>
所有控件都有效。