從MVC 中的表單資料取得整個模型物件
透過表單資料傳遞整個模型物件時,必須確保它們正確轉換回控制器中的模型類型。以下是如何實現這一點:
JavaScript 實作:
利用FormData 序列化整個模型,而不是手動附加單一屬性:
1 | var formdata = new FormData($( 'form' ).get(0));
|
登入後複製
這也包括表單中存在的任何文件輸入。
Ajax請求:
使用Ajax 發布表單數據,停用自動處理和內容類型設定:
1 2 3 4 5 6 7 | $.ajax({
url: '@Url.Action("YourActionName", "YourControllerName")' ,
type: 'POST' ,
data: formdata,
processData: false,
contentType: false,
});
|
登入後複製
控制器操作:
在控制器中,定義一個接受模型作為參數:
1 2 3 4 5 | [HttpPost]
public ActionResult YourActionName(YourModelType model)
{
}
|
登入後複製
或者,如果模型包含檔案輸入,則第二個參數應該是檔案屬性的HttpPostedFileBase:
1 2 3 4 5 | [HttpPost]
public ActionResult YourActionName(YourModelType model, HttpPostedFileBase myImage)
{
}
|
登入後複製
其他資料附錄:
如果需要,可以將其他屬性附加到表單資料中使用:
1 | formdata.append( 'someProperty' , 'SomeValue' );
|
登入後複製
以上是MVC中如何透過表單資料傳遞整個模型物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!