【问题标题】:Pass One Extra parameter to MVC controller Index method on Form RePost将一个额外参数传递给 Form RePost 上的 MVC 控制器 Index 方法
【发布时间】:2019-05-10 18:57:43
【问题描述】:

我有一个接受两个参数的 MVC 控制器。

public class RiskController : Controller
{
    public ActionResult Index(int SquadId, string RiskItems = "Open")
    {
        // Do Stuff here, Populate Model, and then...
        ViewBag.SquadID = SquadId;
        Return View(Model);
    }
}

在我的视图中,我有一个带有下拉列表的表单。

@using (Html.BeginForm("Index", "Risk", FormMethod.Get))
{
     @Html.DropDownList("RiskItems", new List<SelectListItem>
      {
              new SelectListItem() {Text = "Open Risks only", Value="Open"},
              new SelectListItem() {Text = "Closed Risks only", Value="Closed"},
              new SelectListItem() {Text = "All Risks", Value="All"}
      }, new { @class = "form-control", @style = "width:auto" })

    <button type="submit" value="Search" class="btn btn-success">Search</button>       
}

我的目标是在我从下拉菜单中选择一个值并点击提交按钮时重新加载视图。

使用我当前的代码,我可以发布表单,并且下拉值已成功发布到我的控制器中 RiskItems 参数内。但是如何从表单中传递SquadID 参数?

我已经在ViewBag 中捕获了SquadID 参数的值。我可以用它来重新发送控制器的Index Method中的值吗?

【问题讨论】:

    标签: html asp.net-mvc razor


    【解决方案1】:

    我找到了解决方案。我不得不将 Form 方法从 Get 更改为 Post 并使用它。`

    @using (Html.BeginForm("Index", "Risk", new { SquadId = @ViewBag.SquadID }, FormMethod.Post, new { enctype = "multipart/form-data" }))` 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-14
      • 1970-01-01
      • 2020-05-19
      • 2020-08-22
      相关资源
      最近更新 更多