剃刀页面中多种冲突的路线参数格式

时间:2018-11-15 00:06:33

标签: razor-pages

我正在根据Razor Pages MVVM-https://docs.microsoft.com/en-us/aspnet/core/tutorials/razor-pages/?view=aspnetcore-2.1

的教程制作简单的表格

问题是“索引”页面上的元素为route参数使用了不同的格式,而我最终得到的URL是/ StockIndexMonths / 2?StockIndexId = 1 / 2和StockIndexId = 1都是相同的参数

  • 选择列表将使用?StockIndexId = 1
  • 使用返回索引/ 1时,“创建新链接”将使用/ 1
  • 如果我再次使用选择列表,我将得到/ 1?StockIndexId = 2

有人可以告诉我强制使用相同参数格式的首选方法吗?我正在努力让Razor Pages做到“神奇”

Index.cshtml

@page "{StockIndexId?}"
@model Investments.Pages.StockIndexMonths.IndexModel
@{
    ViewData["Title"] = "Index";
}

<h2>Index</h2>

<form>
    <select asp-for="StockIndexId" asp-items="Model.StockIndexNameSelect" onchange="this.form.submit();"></select>
</form>

    <a asp-page="Create" asp-route-StockIndexId="@Model.StockIndexId">Create New</a>

<table class="table">
...

1 个答案:

答案 0 :(得分:0)

更改表单标记,使其使用POST方法:

<form method="post">

当前,由于未指定method,因此默认情况下使用GET,它将表单值作为查询字符串值附加到URL。这就是为什么您看到自己看到的东西。