【发布时间】:2016-09-16 02:56:00
【问题描述】:
我有一个View 需要显示,例如,一个User 和一个Role 表。我需要创建 2 个要在视图中返回的 LINQ 查询,一个用于 User,另一个用于 Role,以便我可以在视图中显示 2 个表。到目前为止,我只能返回User,但我如何返回Role?这是我当前的设置:
用户模型
-ViewModel 用于 View 的文本框,Model 用于表中记录的循环
public class UserModel
{
public int user_id { get; set; }
public string user_name { get; set; }
...
}
用户视图模型
public class UserViewModel
{
public IPagedList<CDS.Models.UserModel> Users { set; get; }
public int userId { get; set; }
public string userName { get; set; }
...
}
查看
@model CDS.Models.UserViewModel
@using PagedList.Mvc;
@using (Html.BeginForm("Create", "User", FormMethod.Get))
{
@Html.HiddenFor(m => m.userId)
@Html.LabelFor(m => m.userName)
@Html.TextBoxFor(m => m.userName)
<table id="dbTable">
<thead>
<tr>
<th class="hidden">
@Html.DisplayNameFor(model => model.user_id)
</th>
<th>
@Html.ActionLink("User", "Create", new { sortOrder = ViewBag.UserSort, currentFilter = ViewBag.CurrentFilter })
</th>
</tr>
</thead>
<tbody id="dbBody">
@foreach (var item in Model.Users)
{
<tr>
<td class="hidden">
@Html.DisplayFor(modelItem => item.user_id)
</td>
<td>
@Html.DisplayFor(modelItem => item.user_name)
</td>
</tr>
}
</tbody>
</table>
//Don't mind this code, it's only for the pagination
Page @(Model.Users.PageCount < Model.Users.PageNumber ? 0 : Model.Users.PageNumber) of @Model.Users.PageCount
@Html.PagedListPager(Model.Users, page => Url.Action("Create",
new { page, sortOrder = ViewBag.CurrentSort, currentFilter = ViewBag.CurrentFilter }))
}
UserController - 我如何为角色返回一个 ViewModel 和另一个 LINQ?
DBEntities _odb = new DBEntities();
public ActionResult Create(string sortOrder, string currentFilter, string searchString, int? page)
{
var user = from u in _odb.USR_MSTR
select new UserModel
{
user_id = u.USR_ID,
user_name = u.USR_NAME,
};
int pageSize = 10;
int pageNumber = (page ?? 1);
var vm = new UserViewModel();
vm.Users = user.ToPagedList(pageNumber, pageSize);
return View(vm);
}
【问题讨论】:
-
您开始说要显示
Role表,但随后您询问是否返回Region? -
我使用
PartialView来显示记录,我只是没有在此处包含它以避免长时间发布。我正在考虑为每个表使用 2PartialView,但不知道如何返回 2ViewModels与不同的LINQ -
@StephenMuecke 哦,开枪!实际上这是我当前项目中的另一个表,我只是在我的帖子中使用了一个示例表。我马上修改,谢谢!
-
但是
Role对用户有一个 FK,所以您肯定想显示每个用户的角色,而不是单独的角色列表吗? -
哦,对不起。看来我不应该这么说以避免混淆。我只会删除它。假设我希望
User和Role显示在同一个View中。
标签: asp.net-mvc linq view html-table