Несколько конфликтующих форматов параметров маршрута в Razor Pages - PullRequest
0 голосов
/ 15 ноября 2018

Я делаю простые грубые формы на основе учебных пособий для Razor Pages MVVM - https://docs.microsoft.com/en-us/aspnet/core/tutorials/razor-pages/?view=aspnetcore-2.1

Проблема в том, что элементы на странице индекса используют разные форматы для параметра маршрута, и я получаю 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 голосов
/ 15 ноября 2018

Измените тег формы, чтобы он использовал метод POST:

<form method="post">

В настоящее время, поскольку method не указано, GET используется по умолчанию, который добавляет значения формы к URL-адресу как значения строки запроса.Вот почему вы видите то, что видите.

...