升级到ASP.NET MVC2后损坏的RenderPartial

时间:2010-03-29 18:01:30

标签: asp.net asp.net-mvc-2

我将MVC1项目升级到MVC2,现在我对RenderPartial的所有调用都在抛出

System.ArgumentNullException: Value cannot be null.

然而这确实有效:

<% Html.RenderPartial("~/Views/Shared/LogOnUserControl.ascx"); %>

这不适用(适用于MVC1):

<% Html.RenderPartial("LogOnUserControl"); %>

RenderPartial的行为是否发生了变化?

2 个答案:

答案 0 :(得分:3)

Bleh ....发现了问题,我的项目引用了MVCContrib 1.0,下载了最新版本并引用了该问题而修复了问题。

答案 1 :(得分:1)

致电

<% Html.RenderPartial("LogOnUserControl"); %> 

似乎工作正常,否则你会收到

The partial view 'LogOnUserControl' was not found. The following locations were searched....

考虑到

当使用部分视图的名称调用Html.RenderPartial()时,ASP.NET MVC会将调用视图模板使用的相同Model和ViewData字典对象传递给局部视图。

调用方法并且至少有一个传递的参数为null时,抛出

ArgumentNullException。

似乎认证参数没有正确传递给LogOnUserControl,或者您可能已经在某种程度上对其进行了自定义?