asp.net mvc刪除功能

來源:互聯網
上載者:User
最近去瞭解了一下 asp.net mvc ,就講一下“刪除”吧。
在顯示資料列表的頁面做刪除功能,首先http在web中支援get和post請求兩種,
如果想在同一頁面顯示資料並且做刪除操作可以通過ajax調用來支援更多的請求方式(put,delete,head等)。
首先是顯示資料列表:
Controller代碼:Code
public ActionResult Index(int? pageIndex)
        {
            PageList<Movie> list = new PageList<Movie>();
            IQueryable<Movie> query = from m in movie.Movie select m;           
            int pageSize = 10;
            int currentPage = pageIndex ?? 1;
            int count = 0;

            count = query.Count();                        
            list.RowCount = count;
            list.PageSize = pageSize;
            currentPage = currentPage < 1 ? 1 : currentPage > list.TotalPages ? list.TotalPages : currentPage;
            list.CurrentPage = currentPage;
            if (count < 1)
            {
                list.List = new List<Movie>();
            }
            else
            {
                list.List = query.Skip<Movie>((currentPage - 1) * pageSize).Take(pageSize);
            }

            return View(list);
        }

說明:PageList<>類是自訂的一個分頁類。

顯示資料:Code
    <table id="data">
        <tr>            
            <th>
                Id
            </th>
            <th>
                MovieName
            </th>
            <th>
                CategoryName
            </th>
            <th>Details</th>
            <th>Update</th>
            <th>Delete</th>
        </tr>

    <% foreach (var item in (Model as Common.PageList.PageList<MvcDemo.Models.Movie>).List) { %>
    
        <tr>            
            <td>
                <%= Html.Encode(item.Id) %>
            </td>
            <td>
                <%= Html.Encode(item.MovieName) %>
            </td>
            <td>
                <%= Html.Encode(item.CategoryName) %>
            </td>
            <td>
                <%= Html.ActionLink("詳情","Details",new{id = item.Id}) %>
            </td>
            <td>
               <%= Html.ActionLink("更新", "Edit", new {id=item.Id})%> 
            </td>
            <td><a href="javascript:void(0);" onclick="del(this,<%= item.Id %>);">刪除</a></td>
        </tr>
    
    <% } %>

    </table>

從上可以看到刪除用到了del方法。代碼如下:Code
        function del(obj,mId)
        {            
            if (confirm("確定刪除?"))
            {
                $.ajax(
                    {
                        url: "/Movie/Delete/" + mId,
                        type: "DELETE",
                        success: function()
                        {
                            $(obj.parentNode.parentNode.parentNode.rows[obj.parentNode.parentNode.rowIndex]).remove();
                            alert("刪除成功!");
                            //window.location.reload();
                        },
                        error: function(XMLHttpRequest, textStatus, errorThrown)
                        {
                            alert("刪除失敗!\n資訊:" + errorThrown + "," + textStatus + "\n");
                        }
                    }
                 );
            }
        }

在此引用了jquery的ajax功能,在刪除的時候請求的方法是DELETE,由上面的type:"DELETE"指定。
伺服器端的刪除代碼就如下,都比較簡單:Code
[AcceptVerbs(HttpVerbs.Delete)]
        public void Delete(int id)
        {
            try
            {
                Movie mov = (from m in movie.Movie where m.Id == id select m).First();
                movie.Movie.DeleteOnSubmit(mov);
                movie.SubmitChanges();
            }
            catch
            { }
        }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.