【发布时间】:2012-07-26 18:33:59
【问题描述】:
当我尝试查看在 WebGrid 中显示产品数据的网页时,我收到“无效列”错误。
我目前正在运行完全相同的代码的实时版本,它可以工作。但是,此本地版本不适用于这 1 个特定页面。
如您所见,下图中引用的代码完全匹配错误消息下方描述的列名称。
我完全被难住了。我不知道现在该做什么。它告诉我“无效列”,但事实并非如此。它就在那里,我对我的代码(如下)中的任何拼写错误进行了三次检查,一切都很好!
什么给了?
<div id="grid">
@grid.GetHtml(
headerStyle : "HeaderStyle",
columns: grid.Columns(
grid.Column(
columnName : "PartNumber",
header : "Part Number",
style : "PartNumberStyle"
),
grid.Column(
columnName : "Product",
header : "Description"
),
grid.Column(
columnName : "Quantity",
header : "Quantity"
),
grid.Column(
columnName : "ZincPlatedCL2UnitPrice",
header : "Zinc Plated CL2 Unit Price",
format: @<a href="?Action=Add&PartNumber=@item["PartNumber"]&Product=@item["Product"]&Type=Zinc Plated CL2 Unit Price&Units=1&UnitPrice=@item["ZincPlatedCL2UnitPrice"]&IsBoxed=0">@item["ZincPlatedCL2UnitPrice"]</a>
),
grid.Column(
columnName : "ZincPlatedCL2BoxPrice",
header : "Zinc Plated CL2 Box Price",
format: @<a href="?Action=Add&PartNumber=@item["PartNumber"]&Product=@item["Product"]&Type=Zinc Plated CL2 Box Price&Units=1&BoxPrice=@item["ZincPlatedCL2BoxPrice"]&IsBoxed=1">@item["ZincPlatedCL2BoxPrice"]</a>
)
)
)
</div>
堆栈跟踪
[InvalidOperationException: 无效的列名 "ZincPlatedCL2UnitPrice"。]
WebMatrix.Data.DynamicRecord.VerifyColumn(字符串名称) +17193
WebMatrix.Data.DynamicRecord.get_Item(字符串名称) +17
WebMatrix.Data.DynamicRecord.TryGetMember(GetMemberBinder 活页夹, 对象和结果)+7 CallSite.Target(闭包,CallSite,对象) +140 System.Dynamic.UpdateDelegates.UpdateAndExecute1(CallSite 站点,T0 arg0)+432
Microsoft.Internal.Web.Utils.DynamicHelper.GetMemberValue(对象 obj, String memberName) +26
Microsoft.Internal.Web.Utils.DynamicHelper.TryGetMemberValue(对象 obj、String memberName、Object& 结果)+24
System.Web.Helpers.WebGridRow.TryGetMember(字符串成员名称,对象& 结果)+57 System.Web.Helpers.WebGridRow.get_Item(字符串名称)+58 CallSite.Target(Closure , CallSite , Object , String ) +100
System.Dynamic.UpdateDelegates.UpdateAndExecute2(CallSite 站点,T0 arg0, T1 arg1) +685
ASP.c__DisplayClass1f.b__1c(TextWriter __razor_template_writer) 在 c:\Users\Jase\Documents\Visual Studio 2012\WebSites\One Stop 紧固件\共享\产品\TekScrews\SelfDrillingMetalUseCL2.cshtml:98 System.Web.WebPages.HelperResult.WriteTo(TextWriter writer) +10
System.Web.Helpers.c__DisplayClass10.b__f(TextWriter tw) +42 System.Web.WebPages.HelperResult.ToString() +82
System.Web.Helpers.c__DisplayClass4.b__3(TextWriter __razor_helper_writer) +1444 System.Web.WebPages.HelperResult.ToString() +82
System.Web.WebPages.HelperResult.ToHtmlString() +9
System.Web.HttpUtility.HtmlEncode(对象值) +38
System.Web.WebPages.WebPageBase.Write(对象值) +68
ASP._Page_Shared_Products_TekScrews_SelfDrillingMetalUseCL2_cshtml.Execute() 在 c:\Users\Jase\Documents\Visual Studio 2012\WebSites\One Stop 紧固件\共享\产品\TekScrews\SelfDrillingMetalUseCL2.cshtml:82 System.Web.WebPages.WebPageBase.ExecutePageHierarchy() +197
System.Web.WebPages.WebPage.ExecutePageHierarchy(IEnumerable`1 执行者)+69 System.Web.WebPages.WebPage.ExecutePageHierarchy() +151 System.Web.WebPages.StartPage.RunPage() +17 System.Web.WebPages.StartPage.ExecutePageHierarchy() +62
System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) +76
System.Web.WebPages.WebPageHttpHandler.ProcessRequestInternal(HttpContextBase httpContext) +114----------------------------------- --------------------------------- 版本信息:Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.0.30319.17626 堆栈跟踪:
[InvalidOperationException: 无效的列名 "ZincPlatedCL2UnitPrice"。]
WebMatrix.Data.DynamicRecord.VerifyColumn(字符串名称) +17193
WebMatrix.Data.DynamicRecord.get_Item(字符串名称) +17
WebMatrix.Data.DynamicRecord.TryGetMember(GetMemberBinder 活页夹, 对象和结果)+7 CallSite.Target(闭包,CallSite,对象) +140 System.Dynamic.UpdateDelegates.UpdateAndExecute1(CallSite 站点,T0 arg0)+432
Microsoft.Internal.Web.Utils.DynamicHelper.GetMemberValue(对象 obj, String memberName) +26
Microsoft.Internal.Web.Utils.DynamicHelper.TryGetMemberValue(对象 obj、String memberName、Object& 结果)+24
System.Web.Helpers.WebGridRow.TryGetMember(字符串成员名称,对象& 结果)+57 System.Web.Helpers.WebGridRow.get_Item(字符串名称)+58 CallSite.Target(Closure , CallSite , Object , String ) +100
System.Dynamic.UpdateDelegates.UpdateAndExecute2(CallSite 站点,T0 arg0, T1 arg1) +685
ASP.c__DisplayClass1f.b__1c(TextWriter __razor_template_writer) 在 c:\Users\Jase\Documents\Visual Studio 2012\WebSites\NameRemoved\Shared\Products\TekScrews\SelfDrillingMetalUseCL2.cshtml:98 System.Web.WebPages.HelperResult.WriteTo(TextWriter writer) +10
System.Web.Helpers.c__DisplayClass10.b__f(TextWriter tw) +42 System.Web.WebPages.HelperResult.ToString() +82
System.Web.Helpers.c__DisplayClass4.b__3(TextWriter __razor_helper_writer) +1444 System.Web.WebPages.HelperResult.ToString() +82
System.Web.WebPages.HelperResult.ToHtmlString() +9
System.Web.HttpUtility.HtmlEncode(对象值) +38
System.Web.WebPages.WebPageBase.Write(对象值) +68
ASP._Page_Shared_Products_TekScrews_SelfDrillingMetalUseCL2_cshtml.Execute() 在 c:\Users\Jase\Documents\Visual Studio 2012\WebSites\NameRemoved\Shared\Products\TekScrews\SelfDrillingMetalUseCL2.cshtml:82 System.Web.WebPages.WebPageBase.ExecutePageHierarchy() +197
System.Web.WebPages.WebPage.ExecutePageHierarchy(IEnumerable`1 执行者)+69 System.Web.WebPages.WebPage.ExecutePageHierarchy() +151 System.Web.WebPages.StartPage.RunPage() +17 System.Web.WebPages.StartPage.ExecutePageHierarchy() +62
System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) +76
System.Web.WebPages.WebPageHttpHandler.ProcessRequestInternal(HttpContextBase httpContext) +114----------------------------------- --------------------------------- 版本信息:Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.0.30319.17626
更新日期:27/07/2012
调试时,异常指向这行代码:
format: @<a href="?Action=Add&PartNumber=@item["PartNumber"]&Product=@item["Product"]&Type=Zinc Plated CL2 Unit Price&Units=1&UnitPrice=@item["ZincPlatedCL2UnitPrice"]&IsBoxed=0">@item["ZincPlatedCL2UnitPrice"]</a>
【问题讨论】:
-
好的,这(不修改文件)现在影响了 106 页中的 22 页。昨晚只影响了 1 页。这很奇怪。
标签: c# .net database entity-framework razor