gpt4 book ai didi

c# - 使用 ajax 使用 .net core MVC 上传文件并作为模型传递

转载 作者:行者123 更新时间:2023-11-30 21:36:24 24 4
gpt4 key购买 nike

我正在尝试使用 .net core 和 mvc ajax 上传图片

这是我的代码

<form asp-action="AddImages" asp-controller="UserAdmin"
data-ajax-begin="onBeginSubmit" data-ajax-complete="onComplete"
data-ajax-failure="onFailed" data-ajax-success="onSuccessSubmit"
data-ajax="true" data-ajax-method="POST" enctype="multipart/form-data">
<input id="file-input-1" name="Image" type="file" class="uploadimg" data-id="1" accept=".jpg, .jpeg, .png" />

<div class="col-xs-12">
<button type="submit">Save</button>
</div>
</form>

这是我的模型

public class ImageModel
{
[Required(ErrorMessage = "Please Select Image of Product")]
public List<IFormFile> Image { get; set; }
}

还有我的方法

  [HttpPost]
public bool AddImages(ImageModel Image)
{
if (!ModelState.IsValid)
{
return false;
}
return true;
}

但是 Image 是 null 并且模型总是返回 false

最佳答案

我自己刚刚遇到这个问题,似乎唯一的解决方法是使用“传统的”ajax 将表单发回 Controller 。我的方法如下:-

用调用 Ajax 的普通按钮替换提交按钮:

<input type="button" class="btn btn-default" value="Save" onclick="javascript:submitForm()" />

然后使用 Ajax 收集表单数据并将其发送回 Controller 操作:

 function submitForm() {
var formdata = new FormData($('#yourFormId').get(0));
$.ajax({
url: '@Url.Action("YourActionName", "YourControllerName")',
type: 'POST',
data: formdata,
processData: false,
contentType: false,
success: function (data) {
//rendering success
},
error: function (xhr, ajaxOptions, thrownError) {
//rendering errors
}
});
}

希望这对某人有所帮助。遗憾的是,新的“data-ajax”表单标签似乎无法处理发回的文件。

关于c# - 使用 ajax 使用 .net core MVC 上传文件并作为模型传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48258967/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com