【发布时间】:2014-04-12 00:30:11
【问题描述】:
使用 C#、MVC、Razor
我很难掌握如何在两个局部视图上执行模型加载,以及如何在用户输入时使用新信息更新这些视图。
我有一个包含以下内容的常规视图:
@model Myapp.ViewModels.SearchedUser
<body>
<div id="tabs">
<ul>
<li><a href="#tabs-1">User</a></li>
<li><a href="#tabs-2">Groups</a></li>
</ul>
<div id="tabs-1">
@Html.Partial("_Edit");
</div>
<div id="tabs-2">
@{Html.Partial("_Groups");}
</div>
</div>
最初,用户显示在主视图上。但是,我需要更新/添加/删除用户组,并在添加该代码时开始将其移至选项卡式页面。
所以在要编辑的部分视图上,我有:
@model Myapp.ViewModels.SearchedUser
...display code for user
我觉得这里的@model 从主视图中可能是多余的。
我的小组部分视图如下所示:
@model Myapp.ViewModels.AllGroups
<!--at if (Model.AddGroups != null)
{ -->
<h2>Groups to be Added</h2>
<table id="AddGroupList">
<thead>
<tr>
<th>
Name
</th>
<th>
Until
</th>
<th>
Action
</th>
</tr>
</thead>
<tbody>
@foreach (var Group in Model.CurrentGroups)
{
<tr>
<td>
@Html.DisplayFor(model=> Group.GroupName)
</td>
<td>
@Html.DisplayFor(model=> Group.EndDate)
</td>
<td>
@Html.DisplayFor(model=> Group.bRemove)
</td>
<td>
@if (AuthCheck.CheckUser(new HttpContextWrapper(HttpContext.Current), oRoles.StaffChangeRequest) ||
AuthCheck.CheckUser(new HttpContextWrapper(HttpContext.Current), oRoles.StudentChangeRequest))
{
<span>@Html.ActionLink("Remove", "RemoveGroup", new { id = Group.ID })</span>
}
</td>
</tr>
}
</tbody>
</table>
我确实需要将 IDnum 传递给每个局部视图,以便为该用户加载当前模型。
现在的问题是……
我是否最好将组添加到 SearchedUser 模型中并在每次将组添加到用户时重新加载整个模型?
【问题讨论】:
标签: c# asp.net-mvc asp.net-mvc-4 razor