将模型传递给 ASP.NET Core MVC 中的视图
Posted
技术标签:
【中文标题】将模型传递给 ASP.NET Core MVC 中的视图【英文标题】:Passing Model into the View in ASP.NET Core MVC 【发布时间】:2020-10-24 18:00:59 【问题描述】:当我将模型作为参数传递时,我得到了 415 状态。错误显示“标题”:“不支持的媒体类型”、“状态”:415。这是我传递模型的方式
我的控制器:
[HttpPost]
[Route("/Home")]
public async Task<IActionResult> Home(bookModel model)
//do something
return View(model);
此错误是什么意思,我该如何解决?谢谢!
【问题讨论】:
HTTP 415 error 响应码表示服务器拒绝接受请求,因为负载格式不支持。格式问题可能是由于请求指示的 Content-Type 或 Content-Encoding,或者是直接检查数据的结果。因此,请检查您是否使用了无效的内容类型。另外,如何将模型发布到控制器(使用JQuery ajax或提交表单)并显示视图,能否分享相关代码以重现问题? @ZhiLv-MSFT 是否有可能因为视图中的表单元素而在发布时收到错误?我按照微软文档上传文件docs.microsoft.com/en-us/aspnet/core/mvc/models/… @ZhiLv-MSFT 从文档中,在MVC中,我们可以在视图中添加文件控制(如:<input type="file" name="battlePlans" multiple>
),然后,使用IFormFile参数(如:public async Task<IActionResult> Post(List<IFormFile> battlePlans)
)接收上传文件,我已经在我的 MVC 应用程序上对其进行了测试,它在我这边运行良好,请检查this screenshot。所以,我认为这个问题与enctype
属性无关。您能否发布相关代码以重现问题,然后,我可以测试它并尝试修复它。
【参考方案1】:
我想如果你像下面这样改变你的代码,问题就会解决。
public async Task<IActionResult> Home([FromBody] bookModel model)
【讨论】:
以上是关于将模型传递给 ASP.NET Core MVC 中的视图的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET Core MVC POST 方法一个具有外键 ID 的模型
ASP.NET MVC 视图需要将选定的下拉列表和日历日期传递给模型
如何将两个模型组合成一个模型并使用 asp.net MVC razor 将其传递给查看