Asp.Mvc 2.0用户登录实例讲解---(5)用户的编辑与删除

来源:岁月联盟 编辑:exp 时间:2012-05-22

这一节来给大家演示下怎么对用户信息进行修改和删除用户,主要包括以下内容

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() %>"> 
   <div> 
   修改用户信息 
       <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()%> 
   <%} %> 
   </div> 
 
   </form> 
 <form id="form1" method="post"  action="/user/edituser?username=<%:ViewData["username"].ToString() %>">
    <div>
    修改用户信息
        <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()%>
    <%} %>
    </div>

    </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://www.2cto.com/uploadfile/2012/0522/20120522103322145.rar






摘自 奶酪专栏