【问题标题】:How do I post to Razor Page with model - .netcore 3.0如何使用模型发布到 Razor 页面 - .net core 3.0
【发布时间】:2020-04-04 04:04:18
【问题描述】:

我正在尝试使用一些模型数据在 .netcore 3.0 Razor 页面上发布一个简单的帖子。我想在第一页中获取数据 - 然后将其发送到通用页面以在另一个页面上显示模态数据。

通常我会在 MVC 中的控制器中处理并在传递模型时返回视图。

这就是我正在做的(RedirectToPage),它正在做一个 GET(而不是 POST)。我想发布数据。

索引页面

<div class="text-center">
  <h1 class="display-1">Test</h1>
  <form method="post">
    <button class="btn btn-dark" type="submit" asp-page-handler="Something">Get Lookup Table Data</button>
  </form>
</div>

索引模型

public IActionResult OnPostSomething()
{
    var result = _service.GetTableData($"{id}").Result;

    Objresult rr = new Objresult();
    rr.Title = "Get Lookup Tables";
    rr.Request = "";
    rr.Json = result;

    return RedirectToPage("Results","OnPost", rr);

}


 https://localhost:44302/Results?Title=Test&Request=&Json=&handler=OnPost

【问题讨论】:

  • HTTP 不支持使用 POST 重定向到页面。当你重定向到某个地方时,HTTP“位置”标头告诉浏览器去哪里,浏览器对该页面发出 GET 请求。 ResultsModel 中的 OnPost 处理程序是什么?你想在Index的post请求中获取数据并重定向到Results页面的Get方法并显示数据吗?

标签: c# asp.net-core razor-pages


【解决方案1】:

我现在意识到 Razor 页面不应该以这种方式工作。经验教训。

在这种情况下,我想做的事情的正确方法是为我的数据创建一个 WebApi,然后在 Razor 页面中调用它。

【讨论】:

  • 不是 Razor 页面,HTTP 协议不支持 Post Redirects。
猜你喜欢
  • 1970-01-01
  • 2021-02-04
  • 2018-07-30
  • 2020-12-27
  • 2019-12-05
  • 2019-08-02
  • 2020-04-26
  • 2020-11-16
  • 1970-01-01
相关资源
最近更新 更多