当我尝试查看在 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(String name) +17193
WebMatrix.Data.DynamicRecord.get_Item(String name) +17
WebMatrix.Data.DynamicRecord.TryGetMember(GetMemberBinder binder, Object& result ) +7 CallSite.Target(Closure, CallSite, Object) +140 System.Dynamic.UpdateDelegates.UpdateAndExecute1(CallSite site, T0 arg0) +432
Microsoft.Internal.Web.Utils.DynamicHelper.GetMemberValue(Object obj, String memberName) + 26
Microsoft.Internal.Web.Utils.DynamicHelper.TryGetMemberValue(Object obj, String memberName, Object& result) +24
System.Web.Helpers.WebGridRow.TryGetMember(String memberName, Object& result) +57 System.Web.Helpers.WebGridRow.get_Item(String name) +58 CallSite.Target(Closure, CallSite, Object, String) +100
System.Dynamic .UpdateDelegates.UpdateAndExecute2(CallSite site, T0 arg0, T1 arg1)
+685 ASP.<>c__DisplayClass1f.b__1c(TextWriter __razor_template_writer) 在 c:\Users\Jase\Documents\Visual Studio 2012\WebSites\One Stop Fasteners\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\One Stop Fasteners\Shared\ Products\TekScrews\SelfDrillingMetalUseCL2.cshtml:82 System.Web.WebPages.WebPageBase.ExecutePageHierarchy() +197
System.Web.WebPages.WebPage.ExecutePageHierarchy(IEnumerable`1 executors) +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(String name) +17193
WebMatrix.Data.DynamicRecord.get_Item(String name) +17
WebMatrix.Data.DynamicRecord.TryGetMember(GetMemberBinder binder, Object& result ) +7 CallSite.Target(Closure, CallSite, Object) +140 System.Dynamic.UpdateDelegates.UpdateAndExecute1(CallSite site, T0 arg0) +432
Microsoft.Internal.Web.Utils.DynamicHelper.GetMemberValue(Object obj, String memberName) + 26
Microsoft.Internal.Web.Utils.DynamicHelper.TryGetMemberValue(Object obj, String memberName, Object& result) +24
System.Web.Helpers.WebGridRow.TryGetMember(String memberName, Object& result) +57 System.Web.Helpers.WebGridRow.get_Item(String name) +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 executors) +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>