首頁 > 後端開發 > C++ > 如何在 ASP.NET MVC 4 中有效處理模型與清單的綁定?

如何在 ASP.NET MVC 4 中有效處理模型與清單的綁定?

Susan Sarandon
發布: 2025-01-03 09:32:39
原創
738 人瀏覽過

How to Effectively Handle Model Binding with Lists in ASP.NET MVC 4?

MVC 4 中模型綁定到清單

嘗試將項目的 IList 結合到檢視時,HttpPost 方法可能會出現問題。雖然存在 Phil Haack 的文章等有用資源,但它們可能無法反映 MVC 4 中的潛在更新。為了解決這個問題,讓我們探索詳細的解決方案。

ViewModel 設定

public class MyViewModel
{
   public List<Person> Persons{get;set;}
}
登入後複製

視圖實作

@model MyViewModel

@for( int i = 0; i < Model.Persons.Count(); ++i)
{
    @Html.HiddenFor(m => m.Persons[i].PersonId)
    @Html.EditorFor(m => m.Persons[i].FirstName) 
    @Html.EditorFor(m => m.Persons[i].LastName)         
}
登入後複製

行動方法

[HttpPost]public ViewResult(MyViewModel vm)
{
...
}
登入後複製

注意事項

行動方法

@for( int i = 0; i < Model.Persons.Count(); ++i)
{
    if(i != 4)//conditionally hide 5th item, 
    { //but BUG occurs on postback, all items after 5th will not be bound to the the list
      @Html.HiddenFor(m => m.Persons[i].PersonId)
      @Html.EditorFor(m => m.Persons[i].FirstName) 
      @Html.EditorFor(m => m.Persons[i].LastName)           
    }
}
登入後複製
注意事項

請注意,只有具有輸入欄位的屬性在回發後才會有值。此外,MVC 的模型綁定機制僅識別連續的 ID。考慮這個有條件隱藏項目的範例:在這種情況下,只有前四個項目將在回發時綁定。為了避免這種情況,請確保 IList 中所有項目的 ID 持續。

以上是如何在 ASP.NET MVC 4 中有效處理模型與清單的綁定?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板