我對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