在本教程中,您將查看自動生成的Details
和Delete
方法。html
?web
Code First 使得您能夠輕鬆的使用Find
方法來搜索數據。一個重要的安全功能內置到了方法中。方法首先驗證Find
方法已經找到了一部電影,而後再執行其它代碼。例如,黑客能夠經過更改http://localhost:xxxx/Movies/Details/1到http://localhost:xxxx/Movies/Details/12345 (或某些其它值,不表明實際影片的值)從而使得連接URL 出現錯誤。若是您沒有檢測是否找到了Movie, null Movie會致使出現數據錯誤。數據庫
查看Delete
和DeleteConfirmed
方法。windows
?安全
請注意,Delete
的HTTP Get
方法不會刪除指定的電影,它返回刪除電影的視圖,您能夠在此視圖中提交 (HttpPost
) 刪除電影。若是使用GET 請求執行刪除操做(或者執行編輯操做,建立操做或者更改數據的任何其它操做) 開闢了一個安全漏洞。對此的詳細信息,請參閱斯蒂芬 ・ 瓦爾特的博客ASP.NET MVC Tip #46 ― Don't use Delete Links because they create Security Holes.服務器
將刪除數據的HttpPost
方法命名爲惟一簽名或名稱的 DeleteConfirmed
方法。這兩個方法的簽名以下所示:mvc
?app
公共語言運行時 (CLR)重載方法時,須要方法具備獨特惟一的簽名 (方法名稱相同但不一樣的參數列表)。可是,在這裏您須要兩種刪除方法 ― ― 一個 GET方法和一個POST方法它們都具備相同的簽名。(他們都須要接受一個整數做爲參數)。框架
要解決這一點,能夠有幾種辦法。一是使用不一樣的方法名稱。這是框架代碼在前面的示例中所使用的方法。然而,這就帶來了一個小問題: ASP.NET 將部分的 URL按名稱映射到操做方法,若是您重命名了方法,一般Routing將沒法找到該方法。解決方法是您在示例中看到的,將ActionName("Delete")
屬性添加到DeleteConfirmed
方法。這會有效的執行Routing系統的Url映射,這樣一個包含/Delete/的 POST 請求的URL 將找到DeleteConfirmed
方法。asp.net
另外一個常見的方法,來避免具備相同名稱和簽名的方法,是人爲地改變POST 方法,包括未使用參數的簽名。例如,有些開發人員添加參數類型 FormCollection
,FormCollection
是會傳遞給 POST 方法的,而後根本不使用此參數:
您如今有一個完整的 ASP.NET MVC 應用程序並在本地的 DB 數據庫中存儲數據。您能夠建立、 讀取、 更新、 刪除和搜索電影。
若是您想要部署應用程序,最好先在您本地的IIS 7 服務器上測試一下您的應用程序。您可使用此 Web Platform Installer 連接啓用IIS服務器的 ASP.NET 應用程序的設置。請參閱下面的部署連接:
・ Test your ASP.NET MVC or WebForms Application on IIS 7 in 30 seconds
・ ASP.NET Deployment Content Map
・ Web Application Projects Deployment
如今鼓勵您開始學習中級內容 Creating an Entity Framework Data Model for an ASP.NET MVC Application 和 MVC Music Store 教程, 瀏覽 ASP.NET articles on MSDN,的文章,再看看不少的視頻和資源:http://asp.net/mvc來了解更多關於 ASP.NET MVC 的信息 ! ASP.NET MVC forums 論壇是一個好地方,能夠用來問您想要知道的問題。
以上的查詢詳細信息和刪除記錄示例是爲了幫助你們更好的掌握MVC的知識,在進行MVC開發時,使用開發工具也能夠大大提升工做效率。使用 ComponentOne Studio ASP.NET MVC 這款輕量級控件,在效率大幅提升的同時,還能知足用戶的全部需求。
--------------------------------------------------------------------------------------------------------------------
譯者注:
本系列共9篇文章,翻譯自Asp.Net MVC4 官方教程,因爲本系列文章言簡意賅,篇幅適中,從一個示例開始講解,全文最終完成了一個管理影片的小系統,很是適合新手入門Asp.Net MVC4,並由此開始開發工做。9篇文章爲:
1. Asp.Net MVC4 入門介紹
・ 原文地址:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/intro-to-aspnet-mvc-4
・ 譯文地址:http://www.cnblogs.com/powertoolsteam/archive/2012/11/01/2749906.html
2. 添加一個控制器
・ 原文地址:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-a-controller
・ 譯文地址:http://www.cnblogs.com/powertoolsteam/archive/2012/11/02/2751015.html
3. 添加一個視圖
・ 原文地址:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-a-view
・ 譯文地址:http://www.cnblogs.com/powertoolsteam/archive/2012/11/06/2756711.html
4. 添加一個模型
・ 原文地址:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-a-model
・ 譯文地址:http://www.cnblogs.com/powertoolsteam/archive/2012/12/17/2821495.html
5. 從控制器訪問數據模型
・ 譯文地址:http://www.cnblogs.com/powertoolsteam/archive/2013/01/11/2855935.html
6. 驗證編輯方法和編輯視圖
・ 譯文地址:http://www.cnblogs.com/powertoolsteam/archive/2013/01/24/2874622.html
7. 給電影表和模型添加新字段
・ 譯文地址:http://powertoolsteam.blog.51cto.com/2369428/1140334
8. 給數據模型添加校驗器
・ 譯文地址:http://powertoolsteam.blog.51cto.com/2369428/1147449
9. 查詢詳細信息和刪除記錄
・ 譯文地址:http://powertoolsteam.blog.51cto.com/2369428/1149311
10.第三方控件Studio for ASP.NET Wijmo MVC4 工具應用