gpt4 book ai didi

asp.net - 绑定(bind)到导航属性导致 "A field or property with the name ' X.X' 未在选定的数据源上找到”仅在 IIS 6 中

转载 作者:行者123 更新时间:2023-12-02 04:09:17 25 4
gpt4 key购买 nike

我发现有人提出了类似的问题,但我认为其中没有一个具体解决了我所看到的环境差异。我有一个包含 GridView 的 ASP.NET Web 窗体应用程序,我将其手动绑定(bind)到 Entity Framework 实体的集合。我正在使用一个 BoundField 来引用我的一个实体上的导航属性。

以前的帖子表明不支持此操作,但整个解决方案在 Windows 7 上运行的 IIS 7.5 中完美运行。但是,当应用程序部署到 Windows Server 2003 R2 上运行 IIS 6 的 Web 服务器时,它会失败并显示HttpException:

"A field or property with the name 'Worker.FullName' was not found on the selected data source."

以下是代码的相关摘要:

实体:

public class WorkerAssignment
{
public Guid Id { get; set; }
public Guid WorkerId { get; set; }

public virtual Worker Worker { get; set; }
}

public class Worker
{
public Guid Id { get; set; }

public string FullName { get; set; }
}

ASPX:

<asp:GridView 
ID="gvWorkers"
runat="server"
AutoGenerateColumns="False"
DataKeyNames="Id"
>
<Columns>
<asp:BoundField
DataField="Worker.FullName"
SortExpression="Worker.FullName"
HeaderText="Worker Name"
/>
</Columns>
</asp:GridView>

两台服务器都运行 .NET Framework 4.0.30319。 IIS 7.5 和 IIS 6 之间的差异是什么导致代码在前一个环境中正常运行而在后一个环境中失败?

最佳答案

我也面临同样的问题。类似DataField="Worker.FullName"的代码工作正常,但突然开始在 DEV 上抛出错误,但在 localhost 上却没有。 。我无法指出确切的问题。

解决我的问题的唯一解决方法是替换 asp:BoundFieldasp:TemplateField使用<%# Eval("Worker.FullName")%>

关于asp.net - 绑定(bind)到导航属性导致 "A field or property with the name ' X.X' 未在选定的数据源上找到”仅在 IIS 6 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19050993/

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