c# - 不支持“Microsoft.AspNetCore.Http.IFormFile.Headers”上的集合类型“Microsoft.AspNetCore.Http.IHeaderDictionary”
问题描述
我试图使用 Ajax 将一个类的列表返回到我的视图中,这是我的 ajax
$(document).ready(function () {
debugger;
$.ajax({
url: '/Product/GetCard/',
type: 'GET',
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (result) {
debugger;
var price = 0;
var cnt = $(result).length;
for (var i = 0; i < cnt; i++) {
debugger;
var newItem = '<div class="mini-cart-product-box pad-top20">' +
'<div class="cart-img-box">' +
' <figure>' +
' <img src="/Product/BlogImage/' + result[i].prdId + '"' + ' alt="">' +
'</figure>' +
'</div>' +
'<div class="cart-price-box">' +
'<h5><a href="product-detail.html">' + result[i].name + '</a></h5>' +
'<p>' +
result[i].count + 'x' + result[i].price + '</p>' +
'</div>' +
'<div class="cancle-box">' +
' <a href="/Product/RemoveFromCart/' + result[i].id + '">x</a>' +
'</div>' +
'</div >';
$('#ccard').prepend(newItem);
$('#meme').html(' <span class="flaticon-cart"></span>' +
'<span class= "count">' + cnt + '</span>');
price = price + result[i].price;
}
$('#pri').html('<span class="furgan-Price-currencySymbol">ریال</span>' + price);
},
error: function (err) {
console.log(err)
alert(err)
},
});
})
这称为
[AllowAnonymous]
[HttpGet]
public JsonResult GetCard(string Idis)
{
var CardIdis = Request.HttpContext.Request.Cookies["UserCard"];
if (CardIdis != null)
{
var Pros = _ProductConnections.GetProducts(CardIdis);
return Json(Pros);
}
return Json(new List<ProductVm>());
}
一切正常,它会返回,但最后没有调用成功函数,错误消息是
An unhandled exception occurred while processing the request.
NotSupportedException: The collection type 'Microsoft.AspNetCore.Http.IHeaderDictionary' on 'Microsoft.AspNetCore.Http.IFormFile.Headers' is not supported.
System.Text.Json.JsonClassInfo.GetElementType(Type propertyType, Type parentType, MemberInfo memberInfo, JsonSerializerOptions options)
Stack Query Cookies Headers Routing
NotSupportedException: The collection type 'Microsoft.AspNetCore.Http.IHeaderDictionary' on 'Microsoft.AspNetCore.Http.IFormFile.Headers' is not supported.
System.Text.Json.JsonClassInfo.GetElementType(Type propertyType, Type parentType, MemberInfo memberInfo, JsonSerializerOptions options)
System.Text.Json.JsonClassInfo.CreateProperty(Type declaredPropertyType, Type runtimePropertyType, Type implementedPropertyType, PropertyInfo propertyInfo, Type parentClassType, JsonConverter converter, JsonSerializerOptions options)
System.Text.Json.JsonClassInfo.AddProperty(Type propertyType, PropertyInfo propertyInfo, Type classType, JsonSerializerOptions options)
System.Text.Json.JsonClassInfo..ctor(Type type, JsonSerializerOptions options)
System.Text.Json.JsonSerializerOptions.GetOrAddClass(Type classType)
System.Text.Json.JsonPropertyInfo.get_ElementClassInfo()
System.Text.Json.JsonSerializer.HandleObject(JsonPropertyInfo jsonPropertyInfo, JsonSerializerOptions options, Utf8JsonWriter writer, ref WriteStack state)
System.Text.Json.JsonSerializer.WriteObject(JsonSerializerOptions options, Utf8JsonWriter writer, ref WriteStack state)
System.Text.Json.JsonSerializer.Write(Utf8JsonWriter writer, int originalWriterDepth, int flushThreshold, JsonSerializerOptions options, ref WriteStack state)
System.Text.Json.JsonSerializer.WriteAsyncCore(Stream utf8Json, object value, Type inputType, JsonSerializerOptions options, CancellationToken cancellationToken)
Microsoft.AspNetCore.Mvc.Infrastructure.SystemTextJsonResultExecutor.ExecuteAsync(ActionContext context, JsonResult result)
Microsoft.AspNetCore.Mvc.Infrastructure.SystemTextJsonResultExecutor.ExecuteAsync(ActionContext context, JsonResult result)
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResultFilterAsync>g__Awaited|29_0<TFilter, TFilterAsync>(ResourceInvoker invoker, Task lastTask, State next, Scope scope, object state, bool isCompleted)
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResultExecutedContextSealed context)
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.ResultNext<TFilter, TFilterAsync>(ref State next, ref Scope scope, ref object state, ref bool isCompleted)
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeResultFilters()
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|24_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, object state, bool isCompleted)
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(ref State next, ref Scope scope, ref object state, ref bool isCompleted)
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)
我没有这个问题,它从今天开始,顺便说一句,我使用 cookie 来保存我想要返回的产品 idis
解决方案
NotSupportedException:不支持“Microsoft.AspNetCore.Http.IFormFile.Headers”上的集合类型“Microsoft.AspNetCore.Http.IHeaderDictionary”。
根据异常消息和您共享的代码,代码似乎使用 进行 JSON 序列化IFormFile
,这导致了问题。请检查您的产品视图模型类是否包含IFormFile
类型属性。
此外,如果您想返回带有产品信息的 Json 结果,您可以包含产品的图像 URL 或 base64 编码的图像,而不是 FormFile。
推荐阅读
- node.js - 将 range-datepicker 包添加到 package.json 后使用
- windows - 在 Windows 上构建 clang - 内存使用情况
- sql - 从 url 中剥离域名
- python - 未(直接)引用时附加 Python 列表
- python - ImportError:无法在 ubuntu 16.04 中导入名称“_remove_dead_weakref”
- html - Move li text but not list type image
- java - 为什么 Java 不优化 |= 分配?
- python-3.x - Python-3 Pandas:使用空格作为分隔符会导致错误,因为其中一行中有额外的空格
- javascript - 一种在 TypeScript 中清理类构造函数的方法?
- regex - 如何使用正则表达式在 kotlin 中查找整个单词