我正在开发一个asp.net mvc 4应用程序,我正在尝试为管理员添加删除用户功能,我可以从下拉列表中选择一个用户并删除他。
我可以通过在文本框中手动输入用户名来删除用户,但我想预先填写所有用户列表的下拉列表。
我使用文本框启动了功能
控制器
[HttpPost]
[ValidateAntiForgeryToken]
[Authorize(Roles = "Admin")]
public ActionResult DeleteUser(UserProfile model)
{
if (ModelState.IsValid)
{
/
try
{
if (model.UserName == null)
{
TempData["ErrorMessage"] = "Username required.";
return RedirectToAction("Register", "Account");
}
else
{
var user = Membership.GetUser(model.UserName);
if (user == null)
{
TempData["ErrorMessage"] = "User Does Not exist.";
return RedirectToAction("Register", "Account");
}
else
{
Membership.DeleteUser(model.UserName);
}
return RedirectToAction("Register", "Account");
}
}
catch (MembershipCreateUserException e)
{
ModelState.AddModelError("", ErrorCodeToString(e.StatusCode));
}
}
return View(model);
}
DeleteUser.cshtml
@model WhiteBoardApp.Models.UserProfile
@using (Html.BeginForm("DeleteUser", "Account"))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary()
<fieldset>
<div class="container-fluid">
<ol>
<li>
@Html.LabelFor(m => m.UserName)
@Html.TextBoxFor(m => m.UserName)
<span style="color:red;">@TempData["ErrorMessage"]</span>
</li>
</ol>
<input type="submit" value="Delete User" />
</div>
</fieldset>
}
我是否知道如何使用包含所有用户名的dropdon列表替换用户名文本框?
答案 0 :(得分:0)
添加IEnumerable类型的ExistingUsers属性&lt; SelectListItem&gt;在UserProfile类中。
查询数据库以使用用户列表填充ExistingUsers。
替换&#39; @ Html.TextBoxFor(m =&gt; m.UserName)&#39;用&#39; @Html。 DropDownListFor(m =&gt; m.UserName,Model.ExistingUsers)&#39;。
答案 1 :(得分:0)
修改DeleteUser.cshtml
@model WhiteBoardApp.Models.UserProfile
@using (Html.BeginForm("DeleteUser", "Account"))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary()
<fieldset>
<div class="container-fluid">
<ol>
<li>
@Html.LabelFor(m => m.UserName)
@Html.DropDownListFor(m => m.UserName, new SelectList(GetUserName(), "UserName", "UserName"))
<span style="color:red;">@TempData["ErrorMessage"]</span>
</li>
</ol>
<input type="submit" value="Delete User" />
</div>
</fieldset>
}
编写名为GetUserName
的用户定义函数以从数据库中获取所有用户名。在dataValueField和dataTextField中,提到用户名属性,如UserName
在提交页面时,它会将所选用户名传递给模型