0

我有一个包含 GET 请求子集的构建,这些请求可以在一个环境中工作,但不能在另一个环境中工作。更奇怪的是,他们确实在初始请求上工作,但对所有后续请求都一无所知。返回的错误是这个坏小子:

The view at '..' must derive from ViewPage, ViewPage<TModel>, ViewUserControl, or ViewUserControl<TModel>.

似乎几乎可以肯定是组件相互踩踏,但我无法理解它。构建之间的 bin 程序集(反过来,引用 System.Web.Mvc)发生了变化,但这并不能解释为什么一个环境有效而另一个环境无效。我也没有看到太多 GAC 差异。

我不是专门询问这个错误(它通常与不同步的 System.Web.Mvc 程序集有关),而是更多关于我看到的奇怪行为。

为什么初始请求会成功,但后续请求会失败并出现上述错误?

有没有其他人看到过类似的行为?

4

1 回答 1

0

因此,根据您的回答,我假设您编写的用于自定义 ViewEngine 的任何类都没有从它应该继承的 ViewPage 类继承。如果您编写了这个的自定义实现,那么这个类必须从 ViewPage 和 ViewPage 继承,以防视图是强类型的。有关更多信息,请查看 Phil Haack 的这篇文章:

http://haacked.com/archive/2011/02/21/changeing-base-type-of-a-razor-view.aspx

另请查看有关完全相同问题的这篇文章:

收到错误“'~/Views/Page/home.aspx' 处的视图必须派生自 ViewPage、ViewPage<TViewData>、ViewUserControl 或 ViewUserControl<TViewData>”

于 2013-09-26T18:06:52.040 回答