将多个参数从剃须刀发送到控制器

时间:2018-10-22 10:49:30

标签: asp.net-mvc

我想将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 :(得分:0)

许多方法可以做到这一点。 1)为HTML的这些元素分配名称 @ item.providers_id 并在您的操作中使用以下相同的名称。您想要接收多少

公共ActionResult Get_full(int id) 2)第二种方法是您可以通过Request.form ['id'](标签或元素的名称)接收操作 3)第三种方法是Request ['id'](内部标签名称) 4)使要在操作中接收的所有属性的类对象和接收操作参数的第四种方式。

如果要将Action传递给Action数据,请将其放在ViewBag中,然后在另一个视图中接收它,或者在重定向到Action时将其作为参数传递

答案 1 :(得分:0)

您也可以使用quickTest。它使用TempData变量存储数据,您可以从Session["AnyKey"]action-to-action进行访问。

请参考https://www.codeproject.com/Articles/786603/Using-TempData-in-ASP-NET-MVC

答案 2 :(得分:0)

您应该使用@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上匹配参数名称。否则你的方法 无法获取您提供的信息。

答案 3 :(得分:0)

虽然我接受并从接受的答案中学习,但我们也可以将这些字段包装在html表单中。 HTML助手中的BeginForm()可以在提交表单时发布表单值。

@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>
}
相关问题