asp.net-mvc – 使用viewModels通过MVC中的User ID在MVC中使用IE
发布时间:2020-12-16 09:41:32 所属栏目:asp.Net 来源:网络整理
导读:我在MVC中创建一个应用程序,我在其中显示表中的行列表.我最初让它显示所有项目,但现在我想要做的是显示某些项目,其中用户的ID等于表中用户的ID. 我有这样的显示: 在我的控制器中: Public Function IssueHistory(sortOrderProject As String,command As Str
我在MVC中创建一个应用程序,我在其中显示表中的行列表.我最初让它显示所有项目,但现在我想要做的是显示某些项目,其中用户的ID等于表中用户的ID.
我有这样的显示: 在我的控制器中: Public Function IssueHistory(sortOrderProject As String,command As String,issueTable As IssueTable) As ActionResult Dim issues As IQueryable(Of IssueTable) = dbServer.IssueTables Return View(issues) End Function 我也按字母顺序排序,如下所示: If sortOrderProject Is Nothing Then sortOrderProject = "AlphUp" End If Select Case sortOrderProject Case "AlphDown" ViewBag.AlphOrderIssue = "AlphUp" issues = issues.OrderByDescending(Function(i) i.IssueKey) Exit Select Case "AlphUp" ViewBag.AlphOrderIssue = "AlphDown" issues = issues.OrderBy(Function(i) i.IssueKey) Exit Select Case Else ViewBag.AlphOrderIssue = "AlphUp" issues = issues.OrderBy(Function(i) i.IssueKey) Exit Select End Select 在我看来: @ModelType IEnumerable(Of IssueTable) @Html.DisplayFor(Function(modelItem) item.IssueStatus) @Html.DisplayFor(Function(modelItem) item.IssueStatus) 但是如何使用viewModel过滤我的应用程序,以便为IssueTable中的每个用户ID.这是我到目前为止所得到的: Public Function IssueHistory(sortOrderProject As String,issueTable As IssueTracker.ClientUserProjectIssue) As ActionResult Dim issues As IQueryable(Of IssueTracker.ClientUserProjectIssue) = dbServer.IssueTables 'Dim issues As IEnumerable(Of IssueTracker.ClientUserProjectIssue) = dbServer.IssueTables Return View(issues) End Function 在我看来: @ModelType IEnumerable(Of IssueTracker.ClientUserProjectIssue) @Html.DisplayFor(Function(modelItem) item.IssueTable.IssueStatus) @Html.DisplayFor(Function(modelItem) item.IssueTable.IssueStatus) 我的ViewModel看起来像这样: Public Class ClientUserProjectIssue Public Property uTable As UserTable Public Property IssueTable As IssueTable End Class 我试图像这样实现它但是没有成功 视图模型: Public Property iEnumarableIssue As IEnumerable(Of IssueTable) 控制器: Dim ViewModel As IEnumerable(Of IssueTable) = dbServer.IssueTables 'ViewModel.iEnumarableIssue = dbServer.IssueTable.Where(Function(x) x.UserID= id).ToList() 但是当我尝试这样做时,我得到了很多空值.使用viewModel过滤每个UserID的行的正确方法是什么,它等于IssueTable中的UserID? 我可以使用IQueryable或IEnumerable,如果这是正确的方法,并且代码可以在c#中解释. 解决方法
在构造查询时应该使用IQueryable.查询准备就绪后,调用ToList()枚举记录到内存中.然后,您可以将列表发送到视图.像这样:
public ActionResult IssueHistory(string sortOrderProject,int userId) { var issues = dbServer.IssueTables.AsQueryable(); //... issues = issues.Where(i => i.UserId == userId); //... issues = issues.OrderBy(i => i.IssueKey); //... return View(issues.ToList()); } 视图的模型必须是IEnumerable(Of IssueTable)(不是IQueryable) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ASP.NET MVC – 使用模型中的布尔值禁用Html帮助器控件
- asp.net-mvc – 加载程序集时会发生什么?
- 你使用ASP.NET MVC Action方法做了什么聪明的事情
- entity-framework-4 – 当超出范围时,Ninject不调用对对象的
- asp.net-mvc – 基本MVC:“modelItem =>”做什么?
- asp.net-mvc-4 – @ Html.Raw坚持编码引号
- asp.net-mvc-2 – AuthorizeAttribute MVC 2中的IoC Unity
- asp.net – HttpMethod和HttpRequest的RequestType有什么区
- asp.net-mvc – 我可以在发布后编辑Asp.net Mvc cshtml吗?
- asp.net-mvc – 在MVC中使用Rotativa pdf显示动态标头
推荐文章
站长推荐
- ef-code-first – 如何通过使用Identity ASP.NET
- asp-classic – asp classic:获取位于管理文件夹
- asp.net-mvc-3 – Value Injecter是否会映射集合
- 将文件路径转换为asp.net核心中的URL
- Dapper和MVC VNext中的问题
- asp.net – 单独的应用程序服务器和数据库服务器
- asp.net-mvc-3 – 使用接口作为部分视图数据注释
- asp.net – 在button和asp之间的区别:button on
- 每个页面上的ASP.NET MVC自定义用户字段
- asp.net – 如何在Visual Studio 2008中安装(获取
热点阅读