我有一个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
参数?
我已经捕获了SquadID
中ViewBag
参数的值。我可以使用它来重新发送控制器的“索引方法”中的值吗?
答案 0 :(得分:0)
我找到了解决方案。我不得不将Form方法从Get更改为Post并使用了它。
@using (Html.BeginForm("Index", "Risk", new { SquadId = @ViewBag.SquadID }, FormMethod.Post, new { enctype = "multipart/form-data" }))`