我对ASP/MVC3/C#非常陌生,但目前正在开展一个项目,要求我列出数据库中的所有用户作为下拉列表,理想情况下我想对其进行过滤,以便仅显示某些角色的用户即管理员,工作人员或学生)。在模型中包含模型,我想?
但是我的问题出在下面,我有一个控制器(Requests.cs)与执行以下操作的方法,并让我去http://server/Requests/UserList
:
public ActionResult UserList()
{
// Create our view model
var users = Membership.GetAllUsers();
var model = new StudentListViewModel
{
Users = users.OfType<MembershipUser>().Select(x => new SelectListItem
{
Value = x.ProviderUserKey.ToString(),
Text = x.UserName
})
};
return View(model);
}
,看起来像一个视图模型这样的:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;
namespace AcademicRegistry.ViewModels
{
public class StudentListViewModel
{
[Display(Name = "select user")]
public string SelectedUser { get; set; }
public IEnumerable<SelectListItem> Users { get; set; }
}
}
及相关观点:
@model AcademicRegistry.ViewModels.StudentListViewModel
@using (Html.BeginForm())
{
@Html.LabelFor(x => x.SelectedUser)
@Html.DropDownListFor(x => x.SelectedUser, Model.Users)
<button type="submit">OK</button>
}
所有日。 ese工作正常(实际上这是我从另一篇文章中找到的所有代码),并且此视图显示我想要的内容,即下拉列表中的值设置为userId,文本显示为用户名。
不过我想这有不同的看法,即EditUser内显示,但是这已经有一个与之关联的模型(@model AcademicRegistry.Models.Requests):
@model AcademicRegistry.Models.Requests
@{
ViewBag.Title = "Edit";
}
<h2>Edit</h2>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>Requests</legend>
@Html.HiddenFor(model => model.Id)
<div class="editor-label">
@Html.LabelFor(model => model.StudentId)
</div>
<div class="editor-field">
*Wanting the dropdown list to show here*
</div>
<p>
<input type="submit" value="Save" />
</p>
</fieldset>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>
我想知道是否有人知道如何让我的下拉表演放在需要的地方?这个下拉菜单将在不少页面上使用,因此理想情况下需要重复使用,正如我所提到的那样,过滤只显示我设置的3个角色的用户。
你是如何导航到其他意见?他们是部分视图吗?你是否通过另一个控制器重定向? – codingbiz 2013-04-04 23:30:26