当前位置: 首页 > 编程语言 > C#

如何在ASP.NETMVC4中正确使用元组分享

时间:2023-04-10 12:18:12 C#

如何在ASP.NETMVC4中正确使用元组到达此错误:应用程序'/'中的服务器错误。传入字典的模型项的类型为“PagedList.PagedList1[S00117372CA3.Product]”,但此字典需要一个类型为“System.Tuple2[PagedList.IPagedList1[S00117372CA3.Product],System.Collections”的模型项.Generic.IEnumerable1[S00117372CA3.Product]',但此词典需要类型为“System.Tuple1[S00117372CA3.Product],System.Collections.Generic.IEnumerable1[S00117372CA3.Order]]”的模型项。说明:在执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其在代码中的来源的更多信息。异常详细信息:System.InvalidOperationException:传入字典的模型项的类型为“PagedList.PagedList1[S00117372CA3.Product]”,但此字典需要类型为“System.Tuple21[S00117372CA3.Product]”的模型项',但是这个字典需要一个类型为'System.Tuple[PagedList.IPagedList1[S00117372CA3.Product],System.Collections.Generic.IEnumerable1[S00117372CA3.Order]]'的模型项。这是我的代码:@*@modelPagedList.IPagedList*@@modelTuple@{ViewBag.Title="Index";}Index@Html.ActionLink("CreateNew","Create")@Html.DisplayNameFor(model=>model.Item1[0].ProductName)@Html.DisplayNameFor(model=>model.Item1[0].Supplier.公司名称)@Html.DisplayNameFor(model=>model.Item1[0].Category.CategoryName)@Html.DisplayNameFor(model=>model.Item1[0].QuantityPerUnit)@Html.DisplayNameFor(model=>model.Item1[0].UnitPrice)@Html.DisplayNameFor(model=>model.Item1[0].UnitsInStock)@Html.DisplayNameFor(model=>model.Item1[0].UnitsOnOrder)@Html.DisplayNameFor(model=>model.Item1[0].ReorderLevel)@Html.DisplayNameFor(model=>model.Item1[0].Discontinued)@foreach(variteminModel.Item1){@Html.DisplayFor(modelItem=>item.ProductName)@Html.DisplayFor(modelItem=>item.Supplier.CompanyName)@Html.DisplayFor(modelItem=>item.Category.CategoryName)@Html.DisplayFor(modelItem=>item.QuantityPerUnit)@Html.DisplayFor(modelItem=>item.UnitPrice)@Html.DisplayFor(modelItem=>item.UnitsInStock)@Html.DisplayFor(modelItem=>item.UnitsOnOrder)@Html.DisplayFor(modelItem=>item.ReorderLevel)@Html.DisplayFor(modelItem=>item.Discontinued)@Html.ActionLink("Edit","Edit",new{id=item.ProductID})|@Html.ActionLink("详情","详情",new{id=item.ProductID})|@Html.ActionLink("Delete","Delete",new{id=item.ProductID})}@Model的页面@(Model.Item1.PageCount>","Index",new{page=Model.Item1.PageCount})}else{@:Next>@Html.Raw("")@:>>}@foreach(Model.Item2中的varitem){@Html.Partial("_Orders")}这是我的控制器代码:varq=(从oindb.Order_Detailswhereo.ProductID==idjoinordindb.Ordersono.OrderIDequalsord.OrderIDorderbyo.Quantitydescendingselectord);varqm=q.Take(3);returnPartialView("_Orders",qm.ToList());本质上你只是试图将多个模型传递给你的视图因为你只能将一种类型传递给视图,所以做你想做的事情的方法是传递模型被包装在一个视图模型,然后传递给视图。类似于:publicclassProductViewModel{publicIPagedListProducts{get;放;}publicIEnumerableOrders{get;放;}}publicActionResultIndex(){varmodel=newProductViewModel();model.Products=//...从数据库中获取model.Orders=//...从数据库中获取returnView(model);Viewsnowcanbestronglytypedontheviewmodel:以上是C#学习教程:HowtousetuplescorrectlyinASP.NETMVC4如果分享的内容对你有用,你还需要进一步了解C#学习教程,希望大家多多关注——@modelProductViewModel本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: