本篇文章為大家展示了如何理解ASP.NET MVC Beta中的IValueProvider,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
ASP.NET MVC Beta版發布于2008年10月。該beta版本的特性已經非常接近于正式版V1的完整特性,雖然還會在最終的V1版發布之前加入若干個特性(包括幾個VS工具增強等)。但開發團隊決定將這個版本稱為“beta”版本,是因為其品質和測試要比以前的預覽版本高(其中包含了許多缺陷修補和性能調校方面的工作),他們感覺,其中的核心功能現在已經“燒制”得足夠好,從這個版本到最終版不會有重大變動了。
在ASP.NET MVC Beta版中,在UpdataModel方法中提供了一個帶有IValueProvider參數的重載。那么這個IValueProvider有什么用呢?
我們先來看一個簡單的場景,例如我們的blog系統有一個Post的對象,Post對象有一個Tags屬性和Categories屬性,他們的類型分別是:
Post.Tags : StateList< string> (BlogEngine.NET 中的一個List< T>的擴展類型)
Post.Categories : StateList< Category> 假如我們要使用UpdataModel方法來對我們Post過來的Form表單數據更新到我們的Post對象中,可能會有如下的代碼:
/// < summary> /// 將提交過來的新隨筆表單內容保存到數據庫 /// < /summary> [AcceptVerbs("POST"), ActionName("NewPost")] public ActionResult SaveNewPost(FormCollection form) { Post post = new Post(); try { UpdateModel(post, new[] { "Title", "Content", "Slug", "Tags", "Categories" }); } catch { return View(post); } .. }
很明顯,在上面的代碼中,我們用UpdateModel來更新Tags和Categories屬性的時候,是不可能成功的,因為UpdateModel方法不知道怎樣將Form提交過來的"Tags"和"Categories"數據轉換為StateList< string>類型和StateList< Category>類型。這時候就需要我們提供一個ValueProvider,來進行這個轉換。
上述內容就是如何理解ASP.NET MVC Beta中的IValueProvider,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。