【问题标题】:Razorpage in MVC will not call OnPost or without dataMVC 中的 Razorpage 不会调用 OnPost 或没有数据
【发布时间】:2022-02-05 11:22:18
【问题描述】:

我将 MVC 应用程序从 .net 3.1 更新到 .net 6。(包括启动到 program.cs)。之后在 program.cs 中用 * 行添加 Razorpage。

builder.Services.AddControllersWithViews();
*builder.Services.AddRazorPages();

app.UseEndpoints(endpoints =>
{
    endpoints.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}");
    *endpoints.MapRazorPages();
});

运行良好,除了... razorpage 中的 OnPost。

默认当我从 .cshtml 页面发布时它不会触发 如果我用

装饰班级
[IgnoreAntiforgeryToken(Order = 1001)]

它触发,但没有数据,模型参数为空。

有没有人有这方面的经验和解决方案? 谢谢

【问题讨论】:

  • 您能分享一下您是如何调用 OnPost 处理程序的吗?

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


【解决方案1】:

我遇到了这个问题。我不得不对它的路由进行更多的优化。

我加了

app.MapControllerRoute(name: "administration",
               pattern: "{controller=UserRolesViewModels}/{action=Administration}");

到我的程序文件夹,然后在我的控制器上,我在每个函数上方定义了模型路由

[Route("manage")]
        [HttpPost]

不确定我是否做得对,因为没有人在这里回答我的问题,但它对我有用。

哦,别忘了导航链接。这是最重要的。

     <li class="nav-item">
                <a class="nav-link" asp-area="" asp-controller="UserRolesViewModels" asp-action="Administration">
                    <i class="ni ni-bullet-list-67 text-default"></i> User Management
                </a>
            </li>

【讨论】:

  • 抱歉 TrixTahbit,我说的是 Razor 页面上的 OnPost。您的解决方案看起来像一个带有视图的 MCV 控制器。我说的对吗?
猜你喜欢
  • 1970-01-01
  • 2021-10-13
  • 2019-11-15
  • 2019-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-12
  • 2013-09-09
相关资源
最近更新 更多