Отправить несколько параметров из бритвы в контроллер - PullRequest
0 голосов
/ 22 октября 2018

Я хочу отправить 3 параметра со страницы просмотра в действие, для которого требуется 3 входных аргумента, например:

  public ActionResult Get_full(int providers_id, int providers_change_request, 
  string persian_name)
    {......}

, и страница просмотра выглядит следующим образом:

   @foreach (var item in Model)
        {
            <tbody>
            <tr>
                <td id="insert_log">@item.insert_log</td>
                <td id="persian_name">@item.persian_name</td>
                <td 
     id="providers_change_request_id">@item.providers_change_request_id
                </td>
                <td id="providers_id">@item.providers_id</td>
                <td>

                    <a href="/Default/Get_full">
                          clickme
                    </a>
                </td>
            </tr>
            </tbody>
        }

пожалуйстапомогите мне как я могу это сделать

Ответы [ 4 ]

0 голосов
/ 29 октября 2018

Пока я принимаю и учусь на принятом ответе, мы также можем обернуть эти поля внутри HTML-формы.BeginForm () в HTML-помощники могут публиковать значения формы при отправке формы.

@using (Html.BeginForm("Get_Full", "Default")) 
{
    @Html.AntiForgeryToken()

    <div class="form-horizontal">
        <h4>Topic</h4>
        <hr />
        <div class="form-group">
            @Html.LabelFor(model => model.insert_log, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.DisplayFor(model => model.insert_log, new { htmlAttributes = new { @class = "form-control" } })
            </div>
        </div>

        <div class="form-group">
            @Html.LabelFor(model => model.persian_name, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.DisplayFor(model => model.persian_name, new { htmlAttributes = new { @class = "form-control" } })
            </div>
        </div>

        <div class="form-group">
            @Html.LabelFor(model => model.providers_change_request_id, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.DisplayFor(model => model.providers_change_request_id, new { htmlAttributes = new { @class = "form-control" } })
            </div>
        </div>

        <div class="form-group">
            @Html.LabelFor(model => model.providers_id, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                <div class="checkbox">
                    @Html.DisplayFor(model => model.providers_id)
                </div>
            </div>
        </div>

        <div class="form-group">
            <div class="col-md-offset-2 col-md-10">
                <input type="submit" value="GetFullInfo" class="btn btn-default" />
            </div>
        </div>
    </div>
}
0 голосов
/ 22 октября 2018

При желании вы также можете использовать TempData.Он использует переменную Session["AnyKey"] для хранения ваших данных, и вы можете получить доступ с action-to-action или controller-to-controller.

Пожалуйста, обратитесь, https://www.codeproject.com/Articles/786603/Using-TempData-in-ASP-NET-MVC

0 голосов
/ 22 октября 2018

Вы должны использовать @Url.Action

в вашем случае, вы можете позвонить так.(Я считаю, что имя вашего контроллера - «По умолчанию»)

<a href="@Url.Action("Get_full","Default", new { providers_id= yourId, providers_change_request= yourRequest, persian_name = yourString})">
    clickme
</a>

Обратите внимание на следующую информацию:

  • Get_full - это имя вашего метода в вашем контроллере
  • По умолчанию этоваш контроллер
  • Вы должны соответствовать именам параметров в Url.Action.В противном случае ваш метод не сможет получить предоставленную вами информацию.
0 голосов
/ 22 октября 2018

Множество способов сделать это.1) Присвойте имя этим элементам HTML, предположим @ item.providers_id, и в вашем действии дайте то же имя, как показано ниже.Столько, сколько вы хотите получить

public ActionResult Get_full (int id) 2) Второй метод - вы можете получить в действии через Request.form ['id'] (имя тега или элемента) 3) Третий путьсделать это - Request ['id'] (имя тега внутри) 4) Четвертый способ сделать объект класса всем атрибутом, который вы хотите получить в действии, и получить аргумент действия.

, если вы хотите отправить действиедля данных действия поместите их в ViewBag, затем получите в другом представлении или передайте в качестве аргумента при перенаправлении на действие

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...