Asp.net 动态部分-viewdata空引用错误
我正在运行一个使用MVC2和.NET4.0的站点 我最近在站点中添加了一个新的局部视图,如下所示:Asp.net 动态部分-viewdata空引用错误,asp.net,asp.net-mvc,Asp.net,Asp.net Mvc,我正在运行一个使用MVC2和.NET4.0的站点 我最近在站点中添加了一个新的局部视图,如下所示: <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<dynamic>" %> <% if (!(bool)ViewData["Master_ShowGuide"] ) { %> <%= Html.NavigationButton("Guide", "butto
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<dynamic>" %>
<% if (!(bool)ViewData["Master_ShowGuide"] )
{ %>
<%= Html.NavigationButton("Guide", "button", "infoIcon", Url.Content("~/Help/ Guide.pdf"), new { title = "Click here to view an in depth user guide." }, new { target="_blank" })%>
<%} %>
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
当时我没有注意到的是在这个视图中添加了
部分,以前我的部分看起来像这样:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<dynamic>" %>
<% if (!(bool)ViewData["Master_ShowGuide"] )
{ %>
<%= Html.NavigationButton("Guide", "button", "infoIcon", Url.Content("~/Help/ Guide.pdf"), new { title = "Click here to view an in depth user guide." }, new { target="_blank" })%>
<%} %>
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
此部分内容使用以下方式显示:
<% Html.RenderPartial("SubLinks"); %>
在我的主页上
这在我的开发环境中似乎可以正常工作,但是当部署到服务器时,我现在遇到了问题,我的ViewData[“Master\u ShowGuide”]
为空。我知道情况并非如此,因为它在母版页的其他地方也可以使用
有人能解释为什么会出现这种情况吗?我已经通过从部分定义中删除
类型“修复”了这个问题,但我对原因很好奇
如果有帮助的话,我的站点运行在与其他运行MVC 3的站点一起的环境中
作为补充,我要指出:
找到了这个问题的答案(关于它发生的根本原因),但我仍然不确定为什么从部分视图声明中删除dynamic也会“修复”它。如果有人能解释的话,我很想听听。找到了问题所在,准备为子孙后代记录下来