2011-02-01 65 views
0

我試圖刪除一條記錄使用一個子表單顯示在一個表上我ManageUser視圖中刪除的記錄,從而ASP.NET MVC3用一個子表單

<table cellpadding="2" cellspacing="0" border="1" summary="User Grid" style="text-align: left"> 
    <tr style="background-color: #ABC3CB;"> 
     <th align="center">User Name</th> 
     <th align="center">Approved</th> 
     <th align="center">&nbsp;</th> 
     <th align="center">&nbsp;</th> 
    </tr> 
    <% foreach(MembershipUser membershipUser in ViewData.Model) { %> 
     <tr> 
      <td><%: membershipUser.UserName %></td> 
      <td align="center"><%: Html.CheckBox(" ", true, membershipUser.IsApproved) %></td> 
      <td align="center"> 
       <% using (Html.BeginForm("DeleteItem", "Admin", new { id = membershipUser.UserName })) { %> 
        <input type="image" src="<%: Url.Content("~/Content/Images/Delete.jpg") %>" /> 
       <% } %> 
      </td> 
     </tr> 
    <% } %> 
</table> 

顯示ManageUser視圖由AdminController下面的代碼,從而

public ViewResult ManageUser(string searchType, string searchInput) 
{ 
    List<SelectListItem> searchOptionList = new List<SelectListItem>() 
    { 
     new SelectListItem() {Value="UserName", Text = "UserName"}, 
     new SelectListItem() {Value="Email", Text = "Email"}, 
    }; 

    ViewData["searchOptionList"] = new SelectList(searchOptionList, "Value", "Text", searchType ?? "UserName"); 
    ViewData["searchInput"] = searchInput ?? string.Empty; 
    ViewData["searchType"] = searchType; 

    MembershipUserCollection viewData; 

    if (String.IsNullOrEmpty(searchInput)) 
     viewData = Membership.GetAllUsers(); 
    else if (searchType == "Email") 
     viewData = Membership.FindUsersByEmail(searchInput); 
    else 
     viewData = Membership.FindUsersByName(searchInput); 

    ViewData["PageTitle"] = "Account Management"; 
    return View(viewData); 
    } 

當我顯示頁面,然後選擇刪除選擇,我希望它在AdminController運行管理/ DeleteItem,從而

public RedirectToRouteResult DeleteItem(string id) 
{ 
    Membership.DeleteUser(id); 
    return RedirectToAction("ManageUser"); 
} 

但相反,它直接返回到Admin/ManagerUser視圖,因此再次顯示我的原始記錄集。

我明顯錯過了一些東西,但我看不到什麼。有人幫忙嗎?

回答

1

HTML <form>元素不能嵌套。嵌套它們會導致不同瀏覽器之間的意外行爲。引用來自the specification

每個表格都必須包含在一個 FORM元素中。在單個文檔中可以有幾個 表單,但不能嵌套表單元素 。

因此,您可能需要刪除外部表單或找到組織標記的另一種方法。

+0

但是,這是史蒂芬·桑德森的書「臨ASP.NET MVC 2框架」顯示的技術,並在他的SportsStore示範工程MVC 2下出現了工作MVC 3的改變? – xiecs 2011-02-01 13:23:45