C# 无法在.NET Core MVC中发布数据

C# 无法在.NET Core MVC中发布数据,c#,post,.net-core,asp.net-core-mvc,C#,Post,.net Core,Asp.net Core Mvc,我正试图通过提交表单,使用.NETCore MVC发出POST请求。从视图中成功进行调用,如下所示: [HttpPost("fred-responses-report-result/{formId:int?}")] public async Task<IActionResult> FredResponsesReportResult(int? formId, ReportFilters filters) 我的控制器代码如下所示: [HttpPost("fred-responses-

我正试图通过提交表单,使用.NETCore MVC发出POST请求。从视图中成功进行调用,如下所示:

[HttpPost("fred-responses-report-result/{formId:int?}")]
public async Task<IActionResult> FredResponsesReportResult(int? formId, ReportFilters filters)

我的控制器代码如下所示:

[HttpPost("fred-responses-report-result/{formId:int?}")]
public async Task<IActionResult> FredResponsesReportResult(int? formId, ReportFilters filters)
到目前为止,我已经读了很多书。我尝试从模型中删除属性-没有帮助。我尝试对控制器参数预挂起
[FromBody]
[FromForm]
,结果出现415 http错误

在这一点上,我有点不知所措。如果我看一下“查看源代码”(在屏幕截图中),它们似乎只是作为HTML编码的字符串传递,而不是JSON,尽管我不明白为什么。不管怎样,这里的正确方法是什么

编辑,以下是拨打电话的代码:

            <form action="" method="post">
            <div class="row gray-background">
                <!--Date Filter-->
                <div class="col-12">
                    <div class="row">
                        <div class="col-2 offset-1 bold-font">
                            <p>Submitted Date</p>
                        </div>
                        <div class="col-3">

                            <div class="date datepicker fromDate">
                                <label for="fromDate">From</label>
                                <div class="input-group">
                                    <input id="fromDate" name="fromDate" type="text" class="form-control" value="1">
                                    <span class="input-group-addon">
                                        <i class="fa fa-calendar fa-lg"></i>
                                    </span>
                                </div>
                            </div>

                        </div>
                        <div class="col-3">
                            <div class="date datepicker toDate">
                                <label for="toDate">To</label>
                                <div class="input-group">
                                    <input id="toDate" name="toDate" type="text" class="form-control" value="@Model.ReportFilters.ToDate">
                                    <span class="input-group-addon">
                                        <i class="fa fa-calendar fa-lg"></i>
                                    </span>
                                </div>
                            </div>
                        </div>
                    </div>

                    <!--Update Filters Button-->
                    <div class="row">
                        <div class="col-12 d-flex justify-content-center">
                            <button class="btn button-margin btn-primary"
                                    type="submit">
                                Update Filter
                            </button>
                        </div>
                    </div>

                </div>
            </div>
        </form>

提交日期

从…起 到 更新过滤器
尝试以以下格式提交表单数据:

filters.fromDate: ..
filters.toDate: ...
而不是

fromDate: ...
toDate: ...
[HttpPost(“fred响应报告结果{formId:int?}”)]
公共异步任务FredResponseReportResult(int?formId,[Bind(“ToDate”,“FromDate”)]ReportFilters)
{
这应该行得通。因为您使用的是直接模型(我相信)这个实例,bind将允许您只针对希望从表单返回的字段

如果在实际视图中看不到与表单相关联的其余代码,并且没有进行AJAX发布(内容类型未设置为application/json),则
[FromBody]
将永远无法工作


下一个问题是实际使用的路由需要一个名为
formId
的变量,还是使用默认的
id

您是如何发布数据的?能否显示您的Ajax代码?请分享您的观点和用于发回的代码。这很有效,非常感谢。id来自url。至于打电话,我将告诉您pdate-我基本上有一个表单。我会回来接受你的答案。我可能会为此悬赏。这感觉“不对”,但效果很好-真的很感激。另外,不要忘了用Id=ReportFilters命名表单会有帮助,确保每个输入与使用TagHelpers命名完全一致也会帮助你
[HttpPost("fred-responses-report-result/{formId:int?}")]
public async Task<IActionResult> FredResponsesReportResult(int? formId,[Bind("ToDate","FromDate")]ReportFilters filters)
 {