asp.net mvc 3 - 类型"System.Web.IHtmlString"在未引用的程序集中定义



现在有点失落…

我遵循以下文章来测试/学习嵌套布局。http://blogs.msdn.com/b/marcinon/archive/2010/12/15/razor-nested-layouts-and-redefined-sections.aspx

,我得到以下错误:

The type 'System.Web.IHtmlString' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. D:ProjectsMvc3TestsRazorLayoutsLayout.MvcBaseExtensionsSectionExtensions.cs 15 36 Layout.MvcBase

我有名称空间系统。Web引用…蓝线在"RenderSection"上。public static HelperResult RenderSection

我刚刚遇到这个问题。您可能需要添加对"System"的引用。Web"也是。这就解决了我的问题。记住,不仅仅是"using"语句,还要添加对它的引用。我在为我的控制器设置测试项目时遇到了这个问题。

安装Mvc解决了我的问题

Install-Package Microsoft.AspNet.Mvc -Version 4.0.40804

检查所有内容是否使用相同版本的框架(例如:您没有引用System.Web的3.5版本),以及您是否安装了任何测试版,其中可能有稍微不同的版本。

如果你不能这样做,你能提供一个你的项目的zip文件(一定要删除任何敏感信息,如API密钥,连接字符串等),我们可以看?

编辑:只是一个想法-你说你有命名空间系统。Web引用。这与程序集 System.Web不同。您可以在没有程序集的情况下导入名称空间,就像其他程序集中的类一样(例如。mvc)可以包含命名空间。确保在您的程序集参考文件夹中可以看到System.Web

我有你同样的问题。我添加了System。Web程序集,但不能从add引用。我确实双击了参考文件夹中的一个程序集,它打开了一个新的选项卡,在这里我选择了正确的。net版本,我添加了特定的程序集版本,所有工作都正确。在我的情况下,我使用。net 4.0。我希望能帮到你。

最新更新