我正在将asp.net 4项目迁移到MVC 3 - 计划在迁移完所有内容后迁移到MVC4。我跟着这篇文章:
创建了一个区域,添加了控制器和视图文件夹,创建了一个控制器
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
}
运行应用程序并检查标准的Aspx页面,然后工作正常,然后转到Controller的路径并获取“错误:值不能为空。参数名称:incomingMarkupParser”错误。所以,然后我删除了返回View();并将其替换为返回内容(“Hello world”);这根本没有问题。
所以我心想,该区域是否有问题...创建了一个Controllers and Views文件夹并再次尝试 - 同样的问题。
System.Web.Razor是版本2.0.0.0 System.Web.WebPages是版本1.0.0.0(也尝试过版本2)
的Web.Config
<assemblies>
<add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
<add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
<add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</assemblies>
<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"/>
</namespaces>
我知道问题与Razor有关,但我找不到什么。有没有其他人经历过这个,如果有的话,他们是如何克服它的呢?
提前致谢。
答案 0 :(得分:1)
web.config中的所有Razor引用在哪里? (我怀疑这是真正的问题)请参阅this page for an example
您还可以尝试this link and the bit of code there查看所有异常(包括吞下的异常)
答案 1 :(得分:1)
您确定在视图文件夹中有web.config吗?我相信这是你的剃刀配置的东西。或者至少我是如何得到我的。尝试查看视图&gt;一个新的MVC项目的web.config,这是我的来源。
我希望这会有所帮助。
答案 2 :(得分:0)
您需要添加或修复
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
到你的web.config。这告诉运行时对版本1,2和3使用System.Web.Mvc程序集。 另外,不要混用Razor引擎,2.0是ASP.NET MVC 4.你需要1.0 for ASP.NET MVC 3.我认为这可能是你的问题。