当我访问该页面时,它无法编译,说: CS1061: 'obj-6ren">
gpt4 book ai didi

.net - ASP.NET MVC 强类型 View 编译错误

转载 作者:行者123 更新时间:2023-12-04 06:24:31 25 4
gpt4 key购买 nike

这是一个奇怪的问题。我改变了一些东西(不确定是什么),现在我的应用程序 View 在运行时无法编译。

View 本身是强类型的:

<%@ Page Language="C#"
MasterPageFile="~/Views/Shared/Site.Master"
Inherits="System.Web.Mvc.ViewPage<MyNamespace.OperatorModel>" %>

当我访问该页面时,它无法编译,说:

CS1061: 'object' does not contain a definition for 'Log' and no extension method 'Log' accepting a first argument of type 'object' could be found (are you missing a using directive or an assembly reference?)



相当标准的错误。对应的源代码行是:
<%= Html.HiddenFor(model => model.Log) %>

当我查看编译器生成的代码时,我发现 View 的基类不是强类型的:
[System.Runtime.CompilerServices.CompilerGlobalScopeAttribute()]
public class views_operator_create_aspx
: global::System.Web.Mvc.ViewPage, // NOT STRONGLY TYPED
System.Web.SessionState.IRequiresSessionState,
System.Web.IHttpHandler {

所以我的问题是,是什么导致 View 编译器忽略我的 Inherits View 定义上的属性?

我应该指出,同一个 Controller 上的其他 View 正在工作,并且它们具有与我上面显示的完全相同的页面声明。

编辑 有谁知道生成的源代码文件在哪里,假设它保存在某个地方?

编辑 我找到了罪魁祸首(在下面的回答中),但我不知道为什么会发生这种情况。如果有人能解释一下,我将不胜感激!

最佳答案

您是否引用了 OperatorModel在您的 Web.Config 中正确吗?这将允许您明确引用 OperatorModel .

<namespaces>
<add namespace="My.Namespace"/>

或者,您可以更改您的 Inherits值(value):
Inherits="System.Web.Mvc.ViewPage<My.Namespace.OperatorModel>"

此外,当将模型对象传递给 View 时,请确保检查 null 或返回空 OperatorModel :
return View(operatorModel 
?? new OperatorModel() { Text = "I can has not found!" });

关于.net - ASP.NET MVC 强类型 View 编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3550244/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com