首頁 >後端開發 >C++ >如何在MVC控制器中附加模型以形成並作為模型接收?

如何在MVC控制器中附加模型以形成並作為模型接收?

Patricia Arquette
Patricia Arquette原創
2025-02-02 21:56:10950瀏覽

How to Append a Model to FormData and Receive it as a Model in an MVC Controller?

在MVC中將模型添加到FormData並將其作為模型接收

本文提供了一種完整的解決方案,用於解決將完整的模型集通過FormData傳輸並在控制器中將其作為模型訪問的常見問題。

傳統方法是將模型對像作為字符串添加到FormData中,這會導致控制器中的Request.Form集合接收到“[object object]”。為了克服這個限制,可以使用一種更優的方法:

使用FormData()序列化模型

利用FormData()功能,可以有效地將模型序列化為FormData。這會自動包含通過HTML表單輸入上傳的文件。

<code class="language-javascript">var formdata = new FormData($('form').get(0));</code>

使用Ajax發布數據

要將序列化的模型數據發佈到控制器,請使用以下Ajax請求:

<code class="language-javascript">$.ajax({
  url: '@Url.Action("YourActionName", "YourControllerName")',
  type: 'POST',
  data: formdata,
  processData: false,
  contentType: false,         
});</code>

在控制器中接收模型

在控制器中,可以通過強類型模型參數接收序列化的模型數據:

<code class="language-csharp">[HttpPost]
public ActionResult YourActionName(YourModelType model)
{
}</code>

或者,如果您的模型不包含HttpPostedFileBase,請考慮以下修改:

<code class="language-csharp">[HttpPost]
public ActionResult YourActionName(YourModelType model, HttpPostedFileBase myImage)
{
}</code>

包含附加屬性

如果您需要包含表單內容之外的其他信息,可以使用以下語法有效地追加屬性:

<code class="language-javascript">formdata.append('someProperty', 'SomeValue');</code>

通過這些技術,您可以將模型數據無縫地添加到FormData中,從而方便地將其作為模型類型在控制器的操作方法中進行傳輸。

以上是如何在MVC控制器中附加模型以形成並作為模型接收?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn