Asp.net mvc 2 模糊渲染之间的调用

Asp.net mvc 2 模糊渲染之间的调用,asp.net-mvc-2,.net-4.0,Asp.net Mvc 2,.net 4.0,最近,我将使用VS 2010 Beta 2构建的ASP.NET MVC 2 Preview 2/.NET 4应用程序上载到MaximumASP.com的Beta网站,当我尝试运行它时,出现以下错误: CS0121:以下方法或属性之间的调用不明确:“System.Web.Mvc.Html.ChildActionExtensions.RenderActionSystem.Web.Mvc.HtmlHelper,string,string”和“Microsoft.Web.Mvc.ViewExtensio

最近,我将使用VS 2010 Beta 2构建的ASP.NET MVC 2 Preview 2/.NET 4应用程序上载到MaximumASP.com的Beta网站,当我尝试运行它时,出现以下错误:

CS0121:以下方法或属性之间的调用不明确:“System.Web.Mvc.Html.ChildActionExtensions.RenderActionSystem.Web.Mvc.HtmlHelper,string,string”和“Microsoft.Web.Mvc.ViewExtensions.RenderActionSystem.Web.Mvc.HtmlHelper,string,string”

此错误不会出现在我的开发人员计算机Windows 7和VS 2010上。你知道这是什么原因吗

更新

我确保我在项目中上载的.dll与Visual Studio 2010 Beta 2配合良好,但在将其上载到主机时仍然会出现相同的错误

我的主机使用的是最新版本的ASP.NET MVC 2 Beta版,但我在web.config中引用了旧的Preview.dll并将其上载到BIN文件夹中,但仍然没有任何内容

-VS2010不支持MVC。。。虽然渲染是MVC2测试版的一部分,但这是预览版2吗

不幸的是,因为VisualStudio 2010 Beta 2和ASP.NET MVC 2 Beta版 共享当前正在使用的组件 不同步,正在运行ASP.NET MVC 2 不支持VS10 Beta 2上的Beta版

VS2010中不支持MVC。。。虽然渲染是MVC2测试版的一部分,但这是预览版2吗

不幸的是,因为VisualStudio 2010 Beta 2和ASP.NET MVC 2 Beta版 共享当前正在使用的组件 不同步,正在运行ASP.NET MVC 2 不支持VS10 Beta 2上的Beta版


您能否在您的开发机器和主机上提供typeofController.Assembly.GlobalAssemblyCache的输出?如果您的控制器代码能够运行,您可以只响应。编写它,然后响应。结束。这将导致视图无法渲染,因此希望您可以避免该错误

编辑:

由于您的宿主已经使用了MVC二进制文件,因此您需要根据宿主正在使用的二进制文件的相同版本编译站点;bin部署不起作用。如果您的主机安装了MVC2beta,您需要根据MVC2beta二进制文件编译您的站点。不幸的是,这意味着您必须使用VS2008+MVC2beta来编译您的站点,因为VS2010beta2包含MVC2preview 2,它比您的宿主部署的版本更早

作为一个完全不受支持的解决方案,MVC2beta可能会在VS2010Beta2上运行,请查看Phil的博客。请注意,我的意思是完全不受支持-它可能会影响VS的其他部分,阻止卸载,并需要重新设置机器的格式,导致您的机器变为放射性,等等


或者,为GAC部署测试版二进制文件打你的主机,让他们取消GAC it:然后,您可以在您的开发计算机和主机上对正在编译的特定二进制文件进行bin部署。

您可以为我们提供type of controller.Assembly.GlobalAssemblyCache的输出吗?如果您的控制器代码能够运行,您可以只响应。编写它,然后响应。结束。这将导致视图无法渲染,因此希望您可以避免该错误

编辑:

由于您的宿主已经使用了MVC二进制文件,因此您需要根据宿主正在使用的二进制文件的相同版本编译站点;bin部署不起作用。如果您的主机安装了MVC2beta,您需要根据MVC2beta二进制文件编译您的站点。不幸的是,这意味着您必须使用VS2008+MVC2beta来编译您的站点,因为VS2010beta2包含MVC2preview 2,它比您的宿主部署的版本更早

作为一个完全不受支持的解决方案,MVC2beta可能会在VS2010Beta2上运行,请查看Phil的博客。请注意,我的意思是完全不受支持-它可能会影响VS的其他部分,阻止卸载,并需要重新设置机器的格式,导致您的机器变为放射性,等等


或者,为GAC部署测试版二进制文件打你的主机,让他们取消GAC it:然后,您可以将编译所针对的特定二进制文件进行bin部署。

我可以想到两件事;首先,您可以确保不在所有页面上导入任何名称空间,例如,从任何语句和Web.config的system.Web/pages/namespace区域中删除Microsoft.Web.Mvc.ViewExtensions。不幸的是,这意味着您无法轻松地引用该程序集中的扩展方法

MSDN论坛上提供的选项是编写一个自己的扩展方法,该方法只包装您要调用的方法,并且具有完全不同的名称,例如BaddieRenderAction

这两个选项都不是很好,但是使用第二个选项,至少您可以轻松地启动并运行,然后在将来MVC 2发布时,您的提供者提供的程序集不会造成问题,您可以搜索并替换BaddieRenderAction->RenderAction,这一切都是固定的


我能想到两件事;首先,您可以确保不在所有页面上导入任何名称空间,例如,从任何语句和Web.config的system.Web/pages/namespace区域中删除Microsoft.Web.Mvc.ViewExtensions。不幸的是,这意味着您无法轻松地引用该程序集中的扩展方法

MSDN论坛上提供的选项是编写一个自己的扩展方法,该方法只包装您要调用的方法,并且具有完全不同的名称,例如BaddieRenderAction


这两个选项都不是很好,但使用第二个选项,至少您可以轻松启动并运行,然后在将来,当MVC 2发布,并且您的提供者提供的程序集不会造成问题时,您可以搜索并替换BaddieRenderAction->RenderAction,这一切都是固定的。

而不是包装渲染操作,只需显式调用扩展方法,如下所示:
Microsoft.Web.Mvc.ViewExtensions.RenderActionHtml,…

不包装渲染操作,只需按如下方式显式调用扩展方法:
Microsoft.Web.Mvc.ViewExtensions.RenderActionHtml,…

在我的例子中,从ASP.NET Mvc 1中删除对旧Microsoft.Web.Mvc库的引用解决了问题。

在我的例子中,从ASP.NET Mvc 1中删除对旧Microsoft.Web.Mvc库的引用解决了问题。

因此,我的主机正在运行ASP.NET Mvc 2 Beta,虽然我的应用程序是使用VS 2010 MVC构建的,该版本比MVC 2 Beta版本旧?但您是否可以了解它们正在运行什么?因此,我的主机正在运行ASP.NET MVC 2 Beta,而我的应用程序是使用VS 2010 MVC构建的,该版本比MVC 2 Beta版本旧?可能,你能找出他们在运行什么吗?我会联系我的主机,看看他们有什么要说的。我有一个共同的计划,所以我不认为他们会为我这么做。但我们拭目以待。我告诉我的主人,他们说他们需要24-72小时才能解决这个问题。我继续使用Microsoft.Web.Mvc.ViewExtensions.RenderActionHtml,在他们回复我之前,我一直使用RenderAction作为解决方法。我会联系我的主机,看看他们有什么要说的。我有一个共同的计划,所以我不认为他们会为我这么做。但我们拭目以待。我告诉我的主人,他们说他们需要24-72小时才能解决这个问题。我继续使用Microsoft.Web.Mvc.ViewExtensions.RenderActionHtml,无论在哪里我都使用RenderAction作为解决方法,直到他们回复我。