.NET Core ViewModel中的IFormFile属性导致停滞的AJAX请求

编程入门 行业动态 更新时间:2024-10-28 06:31:23
本文介绍了.NET Core ViewModel中的IFormFile属性导致停滞的AJAX请求的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我使用户能够在添加/编辑产品"模式下为零售产品添加图像.

I am giving users the ability to add images for a retail product inside of an Add/Edit Product modal.

public class ProductModalViewModel { public ProductModalViewModel() { Product = new ProductDTO(); Images = new List<ProductImageViewModel>(); } public ProductDTO Product { get; set; } public List<ProductImageViewModel> Images { get; set; } }

每个产品图片都包含在其自己的ViewModel中,如下所示:

Each product image is contained in its own ViewModel, as below:

public class ProductImageViewModel { public ProductImageViewModel() { ProductImage = new ProductImageDTO(); } public ProductImageDTO ProductImage { get; set; } [DataType(DataType.Upload)] public IFormFile ImageFile { get; set; } }

提交表单以保存产品(以及所有添加的图像)后,我的请求被挂起并在Chrome开发工具中显示待处理".我的控制器操作从未达到.

Upon submitting the form to save the product (and any added images) my request gets hung up and displays "pending" in Chrome Development Tools. My controller action is never reached.

仅当我在项目中包含ProductImage Fields/ViewModel/Logic时,才会发生这种情况.在将该功能添加到模式之前不会发生这种情况,并且如果我删除所有ProductImage Fields/ViewModel/Logic然后再次提交,则效果很好.

This only happens when I include the ProductImage Fields/ViewModel/Logic in my project. This was not occurring before adding that functionality to the modal, and works fine if I remove all of the ProductImage Fields/ViewModel/Logic then submit again.

将我的IFormFile包含在嵌套的ViewModel中是否存在固有的错误?或者这可能是另外一回事.我其余的相关代码如下.

Is there something inherently wrong with including my IFormFile inside of a nested ViewModel? Or could this be something else. The rest of my relevent code is below.

[HttpPost] public IActionResult SaveProduct([FromForm]ProductModalViewModel model) { //save code }

查看(模态):

<form id="formSaveProduct" onsubmit="SaveProduct(event)" enctype="multipart/form-data"> //Other product fields removed for brevity <div class="row"> <div class="col-md-12"> <ul class="list-group" id="image-list-group"> @for (int i = 0; i < Model.Images.Count(); i++) { <partial name="_ImageListItem" for="Images[i]" /> } </ul> </div> </div> </form>

PartialView(ProductImage):

<li class="list-group-item my-1"> <input type="hidden" asp-for="ProductImage.Id" class="image-id" /> <input type="hidden" asp-for="ProductImage.ProductId" class="image-productid" /> <div class="row"> <div class="col-3"> <input type="text" readonly asp-for="ProductImage.Order" class="image-order" /> </div> <div class="col-6"> <img src="..\@Model.ProductImage.Path" class="image-display" /> </div> </div> </li>

脚本:

function SaveProduct(e) { e.preventDefault(); // prevent standard form submission $.ajax({ url: "@Url.Action("SaveProduct", "ProductManagement", new { Area = "Admin" })", method: "post", data: new FormData($('#formSaveProduct')[0]), contentType: false, processData: false, cache: false, success: function (result) { //removed for brevity } }); }

推荐答案

此问题在以下帖子中的概念性问题中得到了很好的回答:

This question was answered wonderfully in my conceptual question in the following post:

IFormFile作为嵌套ViewModel属性

更多推荐

.NET Core ViewModel中的IFormFile属性导致停滞的AJAX请求

本文发布于:2023-11-14 16:27:30,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1587952.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:属性   Core   NET   ViewModel   AJAX

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!