ASP.NET返回多个变量给视图想不通怎么给一个视图返回多个变量。像这样的东西。我能得到一些帮助吗?publicActionResultCheatSheet(){varvar1=fromtsindb.thisdatabaseselectts;varvar2=fromlsindb.thisdatabaseselectls;varvar3=fromdindb.thisdatabaseselectd;返回视图(var1,var2,var3);}考虑使用ViewModel您将需要使用ViewModel来组合所有这些不同的结果并将该模型传递给视图:publicclassExampleViewModel{//每个类型的示例集合publicIEnumerableCollectionA{get;放;}publicIEnumerableCollectionB{get;放;}publicIEnumerableCollectionC{get;放;然后使用类似下面的代码来执行特定的查询,并使用这些查询的结果来构建模型,然后将其传递给视图://构建模型varmodel=newExampleViewModel(){//你在这些之后可能需要一个.ToList()以确保事情按预期工作=db.thisdatabase.Select(x=>x.ts),};//传递给你的视图returnView(model);注意:这假设你实际上并没有在每个查询中查询相同的表。如果是这种情况,则可能更有效地提取每个属性的单个集合,然后将单独的属性集合分配给模型(而不是执行多个可能冗余的查询)。然后在视图中,您可以引用底层属性集合并迭代它们或按预期执行任何其他类型的操作:@modelYourProject.ViewModels.ExampleViewModel@foreach(variteminModel.CollectionA){...}@foreach(variteminModel.CollectionB){...}@foreach(variteminModel.CollectionC){...}对于更复杂的场景,如果您不想简单地访问数据库中的单个列而是多个,您可能需要创建另一个模型/类来映射属性,然后将这些属性的实例存储在ViewModel中。让我们看看你的例子,看看它是如何工作的。所以你现在想要存储ts、ls和d属性,所以让我们创建一个类来存储它们:publicclassExample{publicstringTs{get;放;}publicstringLs{get;放;}publicstringD{get;set;现在,当您进行查询时,只需获取所有这些并将它们映射到Select()调用中://这现在将是一个IEnumerablevarmodels=db.thisdatabase.Select(x=>newExample(){Ts=x.ts,Ls=x.ls,D=d});如果这就是您所需要的,您现在可以将其直接传递给您的视图://如果您这样做,您需要调整您的@model声明returnView(model);或者,如果您需要为不同的表构建不同的模型,然后将所有这些集合组合成一个与原始示例相似的ViewModel,您可以执行以下大部分操作:varmodel=newExampleViewModel(){CollectionA=db.thisdatabase.Select(x=>newExample(x)),CollectionB=db.othertable.Select(x=>newOtherExample(x)),CollectionC=db.yetanother.Select(x=>newLastExample(x))};其他存储形式根据您的需要,您可以考虑其他一些方法,例如使用ViewBag集合。ViewBag是一个动态集合,允许您轻松地存储和访问视图中的对象:ViewBag.A=db.thisdatabase.Select(x=>x.ts),ViewBag.B=db.thisdatabase.Select(x=>x.ts),ViewBag.C=db.thisdatabase.Select(x=>x.ts),returnView();这将基本上以相同的方式工作,但不是在视图中引用@Model,而是使用@ViewBag。值得注意的是,这也适用于实际模型。还有其他方法,例如使用ViewData或Session集合,但您确实应该使用模型。它更符合实际的MVC模式,如果你习惯了它,它应该会让你的生活更轻松。您可以使用ExpandoObject在视图中传递动态模型。示例:控制器:publicExpandoObjectToExpando(objectanonymousObject){IDictionaryanonymousDictionary=newRouteValueDictionary(anonymousObject);IDictionaryexpando=newExpandoObject();foreach(匿名字典中的var项目)expando.Add(item);返回(扩展对象)扩展;}publicActionResultCheatSheet(){varvar1=fromtsindb.thisdatabaseselectts;varvar2=fromlsindb.thisdatabaseselectls;varvar3=fromdindb.thisdatabaseselectd;varmodel=ToExpando(new{var1=var1,var2=var2,var3=var3})returnView(model);}查看:以上就是C#学习教程:ASP.NET返回多个变量查看所有分享内容,如果对大家有用,需要详细了解C#学习教程,希望大家多多关注——@foreach(variteminModel.var1){...}@foreach(variteminModel.var2){...}@foreach(variteminModel.var3){...}本文收集自网络,确实不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
