Asp.net mvc 如何将两组数据传递给一个视图?
如何在ASP.NET MVC中将两组数据传递给视图 我尝试了几件事,但都没有成功,所以我得出了一个简单的结论:我做错了。 我有两个问题:Asp.net mvc 如何将两组数据传递给一个视图?,asp.net-mvc,linq,views,partial-views,Asp.net Mvc,Linq,Views,Partial Views,如何在ASP.NET MVC中将两组数据传递给视图 我尝试了几件事,但都没有成功,所以我得出了一个简单的结论:我做错了。 我有两个问题: callRepository.FindOpenCalls()和callRepository.FindAllMyCalls(用户) 我想通过两个部分视图(分别是OpenCalls.ascx和AssignedCalls.ascx)将两组数据输出到一个视图中 我想使用CallsController.vb中的Index()函数来完成此操作 目前我有: ' ' GET:
callRepository.FindOpenCalls()
和callRepository.FindAllMyCalls(用户)
我想通过两个部分视图(分别是OpenCalls.ascx和AssignedCalls.ascx)将两组数据输出到一个视图中
我想使用CallsController.vb中的Index()函数来完成此操作
目前我有:
'
' GET: /Calls/
<Authorize()> _
Function Index() As ActionResult
ViewData("OpenCallCount") = callRepository.CountOpenCalls.Count()
ViewData("UrgentCallCount") = callRepository.CountUrgentCalls.Count()
ViewData("HighCallCount") = callRepository.CountHighCalls.Count()
ViewData("NormalCallCount") = callRepository.CountNormalCalls.Count()
ViewData("LowCallCount") = callRepository.CountLowCalls.Count()
ViewData("MyOpenCallsCount") = callRepository.CountMyOpenCalls(Session("LoggedInUser")).Count()
ViewData("UserName") = Session("LoggedInUser")
Dim viewOpenCalls = callRepository.FindAllOpenCalls()
Dim viewMyOpenCalls = callRepository.FindAllMyCalls(Session("LoggedInUser"))
Return View(viewOpenCalls)
End Function
'
'GET:/Calls/
_
函数Index()作为ActionResult
ViewData(“OpenCallCount”)=callRepository.CountOpenCalls.Count()
ViewData(“UrgentCallCount”)=callRepository.CountUrgentCalls.Count()
ViewData(“HighCallCount”)=callRepository.CountHighCalls.Count()
ViewData(“NormalCallCount”)=callRepository.CountNormalCalls.Count()
ViewData(“LowCallCount”)=callRepository.CountLowCalls.Count()
ViewData(“MyOpenCallsCount”)=callRepository.CountMyOpenCalls(会话(“LoggedInUser”)).Count()
ViewData(“用户名”)=会话(“LoggedInUser”)
Dim viewOpenCalls=callRepository.FindAllOpenCalls()
Dim viewMyOpenCalls=callRepository.FindAllMyCalls(会话(“LoggedInUser”))
返回视图(viewOpenCalls)
端函数
很明显,它只返回open调用,但我想同时返回viewOpenCalls和viewMyOpenCalls
我该怎么做呢
展示我的LINQ会有帮助吗
感谢您提前提供的帮助。您不必像现在这样将数据项逐段分配给ViewData。如果由于某种原因您无法传递CallRepository对象,那么您可以创建另一个数据对象来保存打开的和所有调用的存储库数据并传递该数据对象
从长远来看,这种设计实际上更加灵活。将数据传递给视图的最佳方式是为视图实际提供特定的视图数据,仅包含所需的数据 不要使用神奇的字符串(
ViewData(“MyOpenCallCount”)
),而是定义一个包含此视图所需所有数据的特定类(如果我的VB.Net有点过时,请原谅):
并使用从(CallViewData的)ViewPage派生的强类型视图,这样您就有了intellisense,并且不需要使用硬编码字符串来获取信息
如果使用来自所有调用和当前用户调用的信息填充CallViewData,请返回此实例
Dim data as new CallViewData
data.AllCalls = new CallInfo {OpenCallCount = ... }
'etc
return View(data)
可以将ViewData存储在模型对象中并传递该数据。这个
Dim data as new CallViewData
data.AllCalls = new CallInfo {OpenCallCount = ... }
'etc
return View(data)