我收到以下错误 处理请求时发生未处理的异常。 InvalidOperationException:“Microsoft.AspNetCore.Mvc.ModelBinding.Binders.FormCollectionModelBinder”无法绑定(bind)到“Microsoft.AspNetCore.Http.FormCollection”类型的模型。将模型类型更改为“Microsoft.AspNetCore.Http.IFormCollection”。
这是我使用以下代码的时候:
[ValidateAntiForgeryToken]
[HttpPost]
public IActionResult Index(Test test, FormCollection formCollection)
{
var feesAmountArray = new List<string>();
foreach (var item in formCollection.Keys.Where(k => k.StartsWith("FeesAmount-")))
{
feesAmountArray.Add(formCollection[item].ToString().TrimEnd(','));
}
var feesAmount = string.Join(",", feesAmountArray);
if (ModelState.IsValid)
{
}
return View(test);
}
在模型 Test
中,我正在使用 [Decimal]
属性,该属性与 ModelBinder
一起使用,但我不想无论如何绑定(bind)到表单,我只想绑定(bind)到模型,所以我有点困惑为什么会出现这条消息。
ModelBinder 相关代码可以在:
C# ASP.NET Core ModelBinder not Updating Model
任何帮助将不胜感激:-)
最佳答案
两种选择:
- 将参数更改为 IFormCollection
- 删除它并改为通过 HttpContext.Form 访问它
关于C# ASP.NET Core 无法绑定(bind)到类型为 'Microsoft.AspNetCore.Http.FormCollection' 的模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46070586/