Asp.Mvc 2.0用户登录实例讲解---(5)用户的编辑与删除
这一节来给大家演示下怎么对用户信息进行修改和删除用户,主要包括以下内容
1.显示所有用户
2.编辑用户
3.删除用户
1.显示所有用户
我们把所有用户信息查询出来,以表格形式在页面上显示,效果图如下:
首先把所有用户信息显示在index页面上.找到index页面对应的controller,然后查找出所有用户信息,把查找出的用户集合放在viewdata里面
Controller代码:
[csharp] public ActionResult Index()
{
//查询出所有用户
DataSet ds = new Models.SqlHelper().GetAllUsers();
if (ds!=null&&ds.Tables[0].Rows.Count>0)
{
List<Models.UserModels> lists = new List<Models.UserModels>();
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
Models.UserModels model = new Models.UserModels();
model.UserName = ds.Tables[0].Rows[i]["UserName"].ToString();
model.UserPwd = ds.Tables[0].Rows[i]["UserPwd"].ToString();
model.Email = ds.Tables[0].Rows[i]["Email"].ToString();
lists.Add(model);
}
if (lists.Count>0)
{
ViewData["users"] = lists;
}
}
return View();
}
public ActionResult Index()
{
//查询出所有用户
DataSet ds = new Models.SqlHelper().GetAllUsers();
if (ds!=null&&ds.Tables[0].Rows.Count>0)
{
List<Models.UserModels> lists = new List<Models.UserModels>();
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
Models.UserModels model = new Models.UserModels();
model.UserName = ds.Tables[0].Rows[i]["UserName"].ToString();
model.UserPwd = ds.Tables[0].Rows[i]["UserPwd"].ToString();
model.Email = ds.Tables[0].Rows[i]["Email"].ToString();
lists.Add(model);
}
if (lists.Count>0)
{
ViewData["users"] = lists;
}
}
return View();
}
Index页面代码
[html] <table style="border-bottom-width:1px;">
<tr>
<td>用户名</td>
<td>密码</td>
<td>邮箱</td>
<td>编辑</td>
<td>删除</td>
</tr>
<%foreach (var item in (ViewData["users"] as IEnumerable<MvcLogin.Models.UserModels>) )
{%>
<tr>
<td>
<%:item.UserName %>
</td>
<td><%:item.UserPwd %></td>
<td><%:item.Email %></td>
<td>编辑 <%:Html.ActionLink("编辑", "EditUser","user",new { userName=item.UserName},null)%></td>
<td><%:Html.ActionLink("删除", "DelUser", "user", new { userName=item.UserName},null)%></td>
</tr>
<% } %>
</table>
<table style="border-bottom-width:1px;">
<tr>
<td>用户名</td>
<td>密码</td>
<td>邮箱</td>
<td>编辑</td>
<td>删除</td>
</tr>
<%foreach (var item in (ViewData["users"] as IEnumerable<MvcLogin.Models.UserModels>) )
{%>
<tr>
<td>
<%:item.UserName %>
</td>
<td><%:item.UserPwd %></td>
<td><%:item.Email %></td>
<td>编辑 <%:Html.ActionLink("编辑", "EditUser","user",new { userName=item.UserName},null)%></td>
<td><%:Html.ActionLink("删除", "DelUser", "user", new { userName=item.UserName},null)%></td>
</tr>
<% } %>
</table>
点击每行数据后面的编辑按钮,转向编辑页面。接下来我们看看编辑页面
2.编辑用户
首先我们看下编辑页面的效果图
点击每行的编辑链接,转向编辑页面,显示当前用户信息。
首先我们看下编辑页面对应的controller:
[csharp] /// <summary>
/// 转向编辑页面
/// </summary>
/// <param name="userName"></param>
/// <returns></returns>
public ActionResult EditUser(string userName)
{
//根据用户名获取用户信息
DataSet ds = new Models.SqlHelper().GetSingleUser(userName);
if (ds != null && ds.Tables[0].Rows.Count > 0)
{
ViewData["username"] = ds.Tables[0].Rows[0]["username"].ToString();
ViewData["userPwd"] = ds.Tables[0].Rows[0]["userpwd"].ToString();
ViewData["email"] = ds.Tables[0].Rows[0]["email"].ToString();
return View("edituser");
}
else
{
return View("error");
}
}
/// <summary>
/// 转向编辑页面
/// </summary>
/// <param name="userName"></param>
/// <returns></returns>
public ActionResult EditUser(string userName)
{
//根据用户名获取用户信息
DataSet ds = new Models.SqlHelper().GetSingleUser(userName);
if (ds != null && ds.Tables[0].Rows.Count > 0)
{
ViewData["username"] = ds.Tables[0].Rows[0]["username"].ToString();
ViewData["userPwd"] = ds.Tables[0].Rows[0]["userpwd"].ToString();
ViewData["email"] = ds.Tables[0].Rows[0]["email"].ToString();
return View("edituser");
}
else
{
return View("error");
}
}
然后在页面上显示用户信息,在这个地方我们显示页面信息用viewdata来显示
页面代码
[html] <form id="form1" method="post" action="/user/edituser?username=<%:ViewData["username"].ToString() %>">
<p>
修改用户信息
<table class="style1">
<tr>
<td class="style2">
</td>
<td class="style3">
</td>
<td>
</td>
</tr>
<tr>
<td class="style2">
用户名:</td>
<td class="style3">
<input type="text" id="txtUserName" name="txtUserName" disabled="disabled" value="<%:ViewData["username"].ToString() %>" />
</td>
<td>
</td>
</tr>
<tr>
<td class="style2">
密码:</td>
<td class="style3">
<input type="text" id="txtUserPwd" name="txtUserPwd" value="<%:ViewData["userPwd"].ToString() %>"/>
</td>
<td>
</td>
</tr>
<tr>
<td class="style2">
邮箱:</td>
<td class="style3">
<input type="text" id="txtemail" name="txtemail" value="<%:ViewData["email"].ToString() %>" />
</td>
<td>
</td>
</tr>
<tr>
<td class="style2">
</td>
<td class="style3">
<input id="Button1" type="submit" value="提交" /></td>
<td>
</td>
</tr>
</table>
<%if (ViewData["errMsg"] != null)
{%>
<%:ViewData["errMsg"].ToString()%>
<%} %>
</p>
</form>
<form id="form1" method="post" action="/user/edituser?username=<%:ViewData["username"].ToString() %>">
<p>
修改用户信息
<table class="style1">
<tr>
<td class="style2">
</td>
<td class="style3">
</td>
<td>
</td>
</tr>
<tr>
<td class="style2">
用户名:</td>
<td class="style3">
<input type="text" id="txtUserName" name="txtUserName" disabled="disabled" value="<%:ViewData["username"].ToString() %>" />
</td>
<td>
</td>
</tr>
<tr>
<td class="style2">
密码:</td>
<td class="style3">
<input type="text" id="txtUserPwd" name="txtUserPwd" value="<%:ViewData["userPwd"].ToString() %>"/>
</td>
<td>
</td>
</tr>
<tr>
<td class="style2">
邮箱:</td>
<td class="style3">
<input type="text" id="txtemail" name="txtemail" value="<%:ViewData["email"].ToString() %>" />
</td>
<td>
</td>
</tr>
<tr>
<td class="style2">
</td>
<td class="style3">
<input id="Button1" type="submit" value="提交" /></td>
<td>
</td>
</tr>
</table>
<%if (ViewData["errMsg"] != null)
{%>
<%:ViewData["errMsg"].ToString()%>
<%} %>
</p>
</form>
提交修改信息
在编辑页面修改完用户信息后,点击提交按钮,会提交用户信息。
我们看下提交对应的controller
[csharp] [HttpPost]
public ActionResult EditUser()
{
string userName = Request.QueryString["UserName"].ToString();
string userPwd = Request.Form["txtUserPwd"].ToString();
string email = Request.Form["txtemail"].ToString();
if (userName == "" || userPwd == "")
{
ViewData["errMsg"] = "用户名和密码不能为空";
return EditUser(userName);
}
else
{
//更新数据库
bool result=new Models.SqlHelper().UpdateUser(userName, userPwd, email);
if (result)
{
//转向主页
DataSet ds = new Models.SqlHelper().GetAllUsers();
if (ds != null && ds.Tables[0].Rows.Count > 0)
{
List<Models.UserModels> lists = new List<Models.UserModels>();
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
Models.UserModels model = new Models.UserModels();
model.UserName = ds.Tables[0].Rows[i]["UserName"].ToString();
model.UserPwd = ds.Tables[0].Rows[i]["UserPwd"].ToString();
model.Email = ds.Tables[0].Rows[i]["Email"].ToString();
lists.Add(model);
}
if (lists.Count > 0)
{
ViewData["users"] = lists;
}
}
return View("index");
}
else
{
ViewData["errMsg"] = "更新失败";
return EditUser(userName);
}
}
[HttpPost]
public ActionResult EditUser()
{
string userName = Request.QueryString["UserName"].ToString();
string userPwd = Request.Form["txtUserPwd"].ToString();
string email = Request.Form["txtemail"].ToString();
if (userName == "" || userPwd == "")
{
ViewData["errMsg"] = "用户名和密码不能为空";
return EditUser(userName);
}
else
{
//更新数据库
bool result=new Models.SqlHelper().UpdateUser(userName, userPwd, email);
if (result)
{
//转向主页
DataSet ds = new Models.SqlHelper().GetAllUsers();
if (ds != null && ds.Tables[0].Rows.Count > 0)
{
List<Models.UserModels> lists = new List<Models.UserModels>();
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
Models.UserModels model = new Models.UserModels();
model.UserName = ds.Tables[0].Rows[i]["UserName"].ToString();
model.UserPwd = ds.Tables[0].Rows[i]["UserPwd"].ToString();
model.Email = ds.Tables[0].Rows[i]["Email"].ToString();
lists.Add(model);
}
if (lists.Count > 0)
{
ViewData["users"] = lists;
}
}
return View("index");
}
else
{
ViewData["errMsg"] = "更新失败";
return EditUser(userName);
}
}
在提交controller中,我们使用Request.Form获取用户输入的内容。提交成功后,转向INDEX首页。
3.删除用户.
点击删除链接,会根据当前的用户名,转向删除对应的controller
[csharp] /// <summary>
/// 删除用户
/// </summary>
/// <param name="userName"></param>
/// <returns></returns>
public ActionResult DelUser(string userName)
{
bool result = new Models.SqlHelper().DelUser(userName);
DataSet ds = new Models.SqlHelper().GetAllUsers();
if (ds != null && ds.Tables[0].Rows.Count > 0)
{
List<Models.UserModels> lists = new List<Models.UserModels>();
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
Models.UserModels model = new Models.UserModels();
model.UserName = ds.Tables[0].Rows[i]["UserName"].ToString();
model.UserPwd = ds.Tables[0].Rows[i]["UserPwd"].ToString();
model.Email = ds.Tables[0].Rows[i]["Email"].ToString();
lists.Add(model);
}
if (lists.Count > 0)
{
ViewData["users"] = lists;
}
}
return View("index");
}
/// <summary>
/// 删除用户
/// </summary>
/// <param name="userName"></param>
/// <returns></returns>
public ActionResult DelUser(string userName)
{
bool result = new Models.SqlHelper().DelUser(userName);
DataSet ds = new Models.SqlHelper().GetAllUsers();
if (ds != null && ds.Tables[0].Rows.Count > 0)
{
List<Models.UserModels> lists = new List<Models.UserModels>();
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
Models.UserModels model = new Models.UserModels();
model.UserName = ds.Tables[0].Rows[i]["UserName"].ToString();
model.UserPwd = ds.Tables[0].Rows[i]["UserPwd"].ToString();
model.Email = ds.Tables[0].Rows[i]["Email"].ToString();
lists.Add(model);
}
if (lists.Count > 0)
{
ViewData["users"] = lists;
}
}
return View("index");
}
DEMO下载:http://up.2cto.com/2012/0522/20120522103322145.rar
摘自 奶酪专栏
上一篇: python基础学习——数据类型
下一篇: php可以运行js代码吗?