POST URL在Razor页面中缺少处理程序查询字符串

时间:2018-07-03 05:29:54

标签: asp.net post razor asp.net-core razor-pages

我遇到一个问题,我的表单提交URL没有一个查询字符串,该查询字符串指向“隐藏代码”中的处理程序。结果是我收到了400(错误请求)错误。

请求网址如下所示: @GetMapping("/jobs/{job}") public ResponseEntity<String> importVideos(@PathVariable String job) { if (job.equalsIgnoreCase("createThumbnails")) { executeJob(createThumbnails); } else if (job.equalsIgnoreCase("importVideo")) { executeJob(importVideo); } return new ResponseEntity<>("running", HttpStatus.OK); } private void executeJob(Job job) { Set<JobExecution> runningJobExecutions = jobExplorer.findRunningJobExecutions(job.getName()); if (runningJobExecutions.isEmpty()) { try { jobLauncher.run(job, new JobParameters()); } catch (Exception ex) { log.error(ex.getMessage()); } } else { log.info("executeJob already running, so... NOPE!"); } }

何时应如下所示: http://localhost:60900/EventRename

这是.cshtml

http://localhost:60900/EventRename?handler=RenameEvent

这可能是相关的,但我还注意到表单数据缺少'__RequestVerificationToken',默认情况下应将其包含在Razor页面中?

为澄清起见,我不希望在URL中看到来自表单的数据。我希望看到一个处理程序引用,以便“ Razor代码背后”知道提交表单时要运行的方法。请参阅本节:https://docs.microsoft.com/en-us/aspnet/core/razor-pages/#multiple-handlers-per-page <form asp-page-handler="RenameEvent" method="post"> <div class="form-group"> <label asp-for="RenameDataSource"></label> @Html.DropDownListFor(x => x.RenameDataSource, Model.DataSources, "-- select data source --") </div> <div class="form-group"> <label asp-for="RenameTempEvent"></label> @Html.DropDownListFor(x => x.RenameTempEvent, Model.RenameTempEvents, "-- select event type --") </div> <div class="form-group"> <label asp-for="NewName"></label> @Html.DropDownListFor(x => x.NewName, Model.EventTypes, "-- select event type --") </div> <div class="form-group"> <button type="submit">Start Renaming</button> </div> </form>

2 个答案:

答案 0 :(得分:-1)

@using (Html.BeginForm(ActionName, ControllerName, new { handler = "value of your handler" }, FormMethod.Post))

现在您可以提交表格,它将为您提供相同的价值。

答案 1 :(得分:-2)

您的表单方法是post尝试使用get,如果您想查看url中的数据字符串。 https://developer.mozilla.org/en-US/docs/Learn/HTML/Forms/Sending_and_retrieving_form_data