溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何理解ASP.NET MVC Beta中的IValueProvider

發布時間:2021-11-26 17:50:33 來源:億速云 閱讀:150 作者:柒染 欄目:編程語言

本篇文章為大家展示了如何理解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,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女