ASP MVC:为什么我的视图中没有显示我的内部类?

时间:2010-08-09 19:26:22

标签: asp.net-mvc

<ul>
    <li><% Html.ActionLink(StringHelper.TryGetLocalString("Something"),
             "Blah", "Blah"); %></li>
</ul>

我必须先将StringHelper类设置为public,然后才能在部分视图中看到它。

为什么?

(旁注:解析为本地字符串将在我的控制器中完成而不是在视图中(布局),但这是一个很好的快速示例。)

谢谢你的帮助,卢克

2 个答案:

答案 0 :(得分:3)

由于StringHelper很可能没有编译到与MVC站点的其余代码相同的DLL中,因此它无法访问内部事物。

当您将控制器,视图等作为默认MVC网站设置(以及调试时的工作方式)将常规代码编译为DLL,然后单独编译页面/视图时,就会出现这种情况。当您在发布网站时设置“可更新性”时,也会发生这种情况。

答案 1 :(得分:2)

当Web服务器加载应用程序时,将编译ASP.NET中的视图(或aspx / ascx文件)。这可能意味着他们在另一个集会中,你的课程是内部的......你明白了。