ASP. NET - идентификатор маршрута до страницы, но на странице нет - PullRequest
0 голосов
/ 23 апреля 2020

У меня проблема с маршрутом,

С этой разметкой:

<td><a asp-page="./EditNew" asp-route-testId=@Model.TestId asp-route- 
testCaseId=@Model.Id class="btn btn-success">Edit</a></td>

, когда я нажимаю на ссылку, она правильно открывает новую модель bootstrap на странице EditNew.

Но если я добавлю эту строку в тег a:

data-target="#myModal" data-toggle="modal"

, тогда asp-route-testId и asp-route-testCaseId будут отправлены на OnGet() как testId=null и testCaseId=0.

Если я удаляю data-target="#myModal" data-toggle="modal", все работает нормально.

Почему в ссылке не может быть атрибутов data-target & data-toggle?

1 Ответ

1 голос
/ 23 апреля 2020

Я думаю, вы пытаетесь смешать Asp. Net и bootstrap таким образом, что это не может работать.

Если вы хотите отобразить разметку EditNew в модальном диалоге, используя bootstrap, просто поместите бритвенные теги для @Model.Id и @Model.TestId прямо в разметку вашего модального диалога.

Давайте используем код из https://getbootstrap.com/docs/4.0/components/modal/ для этого примера. Обратите внимание, что я поместил @Model.Id и @Model.TestId прямо в разметку:

<!-- Button trigger modal -->
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal">
  Launch demo modal
</button>

<!-- Modal -->
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" >Id is @Model.Id and TestCase Id @Model.TestId</h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body">
        ...
      </div>
    </div>
  </div>
</div>

Почему?

Поскольку бритвенные теги, такие как @Model.TestId, являются оценивается , когда разметка генерируется до загрузки страницы. Таким образом, они могут быть встроенными в разметку, но они не могут быть повторно оцененными после загрузки страницы.

Google asp. net бритва получить начал больше.

...