Как передать параметр ID из представления в контроллер? - PullRequest
0 голосов
/ 19 декабря 2018

У меня проблемы с передачей значения идентификатора в метод контроллера в кнопке ввода ввода.Я пытаюсь передать значение ActionItemID в зависимости от того, в какой строке пользователь нажимает кнопку O.Кажется, я не могу вызвать значение в контроллере.

@model SQLApplication.Models.ActionItems.ActionItemsViewModel

    <table class="table table-condensed table-action-items">
    <tr>
        <th>@Html.DisplayNameFor(model => model.Description.Status)</th>
        <th>@Html.DisplayNameFor(model => model.Description.Principal)</th>
        <th>@Html.DisplayNameFor(model => model.Description.CompanyName)</th>
        <th>@Html.DisplayNameFor(model => model.Description.ActionItem)</th>
        <th>@Html.DisplayNameFor(model => model.Description.Owners)</th>
        <th>@Html.DisplayNameFor(model => model.Description.DueDate)</th>
        <th>@Html.DisplayNameFor(model => model.Description.UpdatedDate)</th>
        <th>@Html.DisplayNameFor(model => model.Description.CreatedDate)</th>
        <th>@Html.DisplayNameFor(model => model.Description.Sales)</th>
        <th></th>
    </tr>

    @foreach (var item in Model.Items)
    {
        <tr>
            <td>@Html.DisplayFor(modelItem => item.Status)</td>
            <td>@Html.DisplayFor(modelItem => item.Principal)</td>
            <td>@Html.DisplayFor(modelItem => item.CompanyName)</td>
            <td>@Html.DisplayFor(modelItem => item.ActionItem)</td>
            <td>@Html.DisplayFor(modelItem => item.Owners)</td>
            <td>@Html.DisplayFor(modelItem => item.DueDate)</td>
            <td>@Html.DisplayFor(modelItem => item.UpdatedDate)</td>
            <td>@Html.DisplayFor(modelItem => item.CreatedDate)</td>
            <td>@Html.DisplayFor(modelItem => item.Sales)</td>

            <td class="right"><input type="submit" name="O" value="@item.ActionItemId" class="btn btn-default" onclick="location.href='@Url.Action("Open", "ActionItems")'" /></td>
            <td class="right"><input type="submit" value="P" class="btn btn-default" onclick="location.href='@Url.Action("Index", "ActionItems")'" /></td>
            <td class="right"><input type="submit" value="C" class="btn btn-default" onclick="location.href='@Url.Action("Index", "ActionItems")'" /></td>

        </tr>
    }
</table>

1 Ответ

0 голосов
/ 19 декабря 2018

В перенаправлении, которое вы выполняете, нет значений:

location.href='@Url.Action("Open", "ActionItems")'

Если вы хотите включить значение id, добавьте его к вызову метода Url.Action:

location.href='@Url.Action("Open", "ActionItems", new { id = item.ActionItemId })'

Похоже, вы пытаетесь использовать атрибут value, который сам по себе был бы полезен при отправке <form> вашей кнопкой отправки.Но я подозреваю, что без <form> ваша кнопка ничего не делала, поэтому вы добавили перенаправление JavaScript.В любом случае, действительно работает.Ключевые различия:

  • Перенаправление, подобное этому, всегда является только запросом GET, а не POST.Если вам нужен POST, используйте форму или, возможно, AJAX и перенаправление после его завершения.
  • В большинстве случаев у пользователей включен JavaScript, и это не проблема.Но иногда это так, например, для нужд доступности.Убедитесь, что вы можете положиться на своих пользователей, используя JavaScript.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...