C# 无法在.NET Core MVC中发布数据
我正试图通过提交表单,使用.NETCore MVC发出POST请求。从视图中成功进行调用,如下所示: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-
[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)
{