WebMatrix進階教程(8):建立刪除資料網頁

來源:互聯網
上載者:User
目前為止,您已經建立了一個資料驅動的最喜愛電影列表,設定了它的樣式,添加了在資料庫中添加新電影和編輯現有電影的能力。建立此應用程式過程中的下一步是為使用者提供從資料庫中刪除記錄的能力。

導讀:Microsoft WebMatrix是一個免費的工具,可用於建立、自訂和在Internet上發布網站。

WebMatrix使您能夠輕鬆建立網站。您可以從一個開源應用程式(比如WordPress、Joomla、 DotNetNuke或Orchard)開始,WebMatrix會為您處理下載、安裝和配置這些應用程式的任務。或者您可以使用許多內建的模板自行編寫代碼,這些模板有助於您迅速上手。無論您做何選擇,WebMatrix都提供了您的網站運行所需的一切內容,包括Web伺服器、資料庫和架構。通過在您的開發案頭使用與您將在Web主機上使用的相同堆棧,將網站上線的過程變得既輕鬆又順利。
您可以從http://web.ms/webmatrix下載它。
現在您只需花幾個小時便可學會使用WebMatrix、CSS、HTML、HTML5、ASP.NET、SQL、資料庫等知識以及如何編寫簡單的Web應用程式。內容如下:
講到Web應用程式開發和資料,您可能聽說過術語CRUD。CRUD表示Create(建立)、Retrieve(檢索)、Update(更新和Delete(刪除),它準確概括了您使用WebMatrix所做的事情。

添加刪除網頁

首先,建立一個新CSHTML網頁並將它命名為DeleteMovie.cshtml。

將其中的HTML替換為以下內容:

<h1>Delete a movie</h1>  <p>Are you sure you want to delete the movie <strong>@Movie.Name ?</strong></p>  <form action="" method="post">      <input type="submit" value="Yes"/>      <input type="button" value="No" onclick="window.location = dataMovies.cshtml" />  </form>

這段代碼建立了一個包含2個按鈕的基本表單,提交按鈕觸發HTTP POST(就像上一部分中的編輯網頁一樣),另一個按鈕在單擊時將您重新導向回電影列表。

就像EditMovie.cshtml網頁一樣,此網頁將被調用和傳遞一個參數,該參數為要刪除的電影的ID。在文本“Are you sure you want to delete the movie @Movie.Name?”中,Movie.Name的值將由伺服器插入。所以,我們需要告訴伺服器如何擷取此值:為此,跟以前一樣,在網頁頂部添加一些Razor代碼來擷取輸入參數。

@{  var id=Request["id"];  var SQLSELECT = "SELECT * FROM Favorites where ID=@0";  var db = Database.Open("Movies");  var Movie = db.QuerySingle(SQLSELECT,id);  var MovieName=Movie.Name;  }

在這裡您可以看到,參數作為“id”傳遞給網頁(使用DeleteMovie.cshtml?id=<whatever>),此id用於尋找特定電影。對資料庫執行一次查詢並擷取該影片的記錄。現在您可以擷取該電影的名稱,並在呈現頁面時呈現它。

運行DeleteMovie.cshtml?id=<something>,您將看到此螢幕,前提是<something>是資料庫中的一個有效ID:

如果單擊“No”按鈕,您將被重新導向回dataMovies.cshtml網頁。如果單擊“Yes”,不會發生任何事情,因為還未編寫代碼來處理刪除操作。

要從資料庫中刪除記錄,使用 DELETE SQL 命令。這可以使用以下文法DELETE FROM <Table> WHERE <Field>=<Value>,所以,如果希望刪除 id=2 的電影,可以編寫:

DELETE FROM Favorites WHERE ID=2,當使用者單擊“Yes”按鈕時,將提交該表單並發生刪除操作,我們可以在回傳時執行此任務,如下所示:這將刪除電影,將我們重新導向回列表網頁,以便我們看到它消失了。

下面是DeleteMovie.cshtml的完整代碼:

@{    var id=Request["id"];    var SQLSELECT = "SELECT * FROM Favorites where ID=@0";    var db = Database.Open("Movies");    var Movie = db.QuerySingle(SQLSELECT,id);    var MovieName=Movie.Name;    if(IsPost)        {        var SQLDELETE = "DELETE FROM Favorites WHERE ID=@0";        db.Execute(SQLDELETE,id);        Response.Redirect("dataMovies.cshtml");        }    }         <h1>Delete a movie</h1>    <p>Are you sure you want to delete the movie <strong>@Movie.Name ?</strong></p>    <form action="" method="post">    <p><input type="submit" value="Yes"/>    <input type="button" value="No" onclick="window.location = 'dataMovies.cshtml'" /></p>    <br/>    </form>

從電影列表調用刪除網頁

現在我們已經有了有效刪除網頁,我們將它與電影列表網頁串連起來,以便使用者能夠從該列表刪除項目並請求刪除它。

在電影列表網頁上,只需為每個清單項目添加一個超連結,其中超連結連結到DeleteMovie.cshtml 網頁,向它傳遞當前電影的id。

下面是 dataMovies.cshtml 的完整代碼:

 @{    var db= Database.Open("Movies");    var sqlQ = "SELECT * FROM Favorites";     var data = db.Query(sqlQ);     }   <div id="movieslist">   <ol>    @foreach(var row in data){    <li>   <a href="@row.Name>EditMovie.cshtml?id=@row.id">@row.Name, @row.Genre, @row.ReleaseYear    </a>    <a href="DeleteMovie.cshtml?id=@row.id">Delete</a>  </li>  }  </ol>  <a href="AddMovie.cshtml">Add a new movie</a>  </div>

運行此網頁並查看刪除的工作流程。首先,這是新的dataMovies.cshtml:

以上就是WebMatrix進階教程(8):建立刪除資料網頁的內容,更多相關內容請關注topic.alibabacloud.com(www.php.cn)!

  • 相關文章

    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.