使用用户配置文件表中的用户列表填充下拉框以删除用户
本文关键字:用户 删除 填充 配置文件 列表 | 更新日期: 2023-09-27 17:57:01
我正在开发一个 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);
}
删除用户.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>
}
我可以知道如何用包含所有用户名的下拉列表替换用户名文本框吗?
在 UserProfile 类中添加类型为 IEnumerable 的现有用户属性<选择列表项>。选择列表项>
查询数据库以使用用户列表填充现有用户。
将"@Html.TextBoxFor(m => m.UserName)"替换为"@Html. DropDownListFor(m => m.UserName, Model.ExistingUsers)"。
修改你的 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
提交页面时,它会将选定的用户名传递给模型