我刚刚部署了一个新的MVC3应用程序,经过我的托管服务提供商的一些努力,MVC3似乎运行正常,但现在我在网站上的任何内容加载之前得到以下编译错误:
CS0246:类型或命名空间名称' Telerik'找不到(你错过了使用指令或汇编引用吗?)
这发生在以下行的web.config中:
<add namespace="Telerik.Web.Mvc.UI" />
我知道DLL存在于主机上的bin文件夹中,所以我对其他可能出错的东西感到有点迷失。
答案 0 :(得分:5)
如果您使用Razor这一行:
<add namespace="Telerik.Web.Mvc.UI" />
必须出现在~/Views/web.config
而不是~/web.config
。这可能是你的情况吗?
像这样:
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="Telerik.Web.Mvc.UI" />
</namespaces>
</pages>
</system.web.webPages.razor>
答案 1 :(得分:1)
阅读Mike Kidder的回复。很抱歉链接另一个论坛,我知道这很烦人,但我宁愿给予应有的信用。
转换为Razor语法时的两大要点:
1)输出html时使用@(....),而不是@ {....;} - 在括号中包含Telerik控件的代码,而不是括号 - 使用括号,你基本上告诉Razor执行一个方法。你不会得到任何输出
2)删除任何Telerik控件的“.Render()”方法。不在Razor中使用。
答案 2 :(得分:1)
您必须为已引用的程序集将“Copy Local”设置为true。在您的情况下,展开“参考”,选择装配,按F4打开属性并将“复制本地”设置为true。程序集很可能安装在GAC中,因此当您默认添加对它的引用时,Copy Local为false。
答案 3 :(得分:0)
它可能在bin文件夹中,但是,既然你没有提到这个,你真的在项目中添加了对该文件的引用吗?在添加对dll的引用之后,它应该正确构建