透過formdata 傳遞複雜的模型集可能是一個挑戰,但使用jQuery 序列化和MVC 控制器的組合綁定,可以有效地實現這一點。
要將模型集轉換為 FormData,您可以利用 jQuery 的 FormData 物件以及表單序列化。如果模型綁定到表單標籤內的視圖,請使用以下命令將其序列化:
var formdata = new FormData($('form').get(0));
這將自動包含綁定到表單控制項的任何模型屬性,包括檔案輸入。
使用AJAX請求將formdata提交給控制器:
$.ajax({ url: '@Url.Action("YourActionName", "YourControllerName")', type: 'POST', data: formdata, processData: false, contentType: false, });
透過設定processData和contentType 設定為false,jQuery 將允許按原樣發送表單資料。
在控制器中,您可以定義一個強型別方法來綁定到模型集:
[HttpPost] public ActionResult YourActionName(YourModelType model) { }
MVC 的模型綁定係統會根據其屬性自動從formdata 填充模型
如果您需要在表單資料中包含其他非模型屬性,只需使用:
formdata.append('someProperty', 'SomeValue');
這允許您使用以下方式擴展表單資料可以在控制器中存取的自定義值。
以上是如何透過 FormData 將複雜模型集傳遞到 MVC 控制器?的詳細內容。更多資訊請關注PHP中文網其他相關文章!