将对象属性传递给控制器

本文关键字:控制器 对象 属性 | 更新日期: 2023-09-27 18:31:48

在一个视图中,我有一个下拉列表

@using (Html.BeginForm("Index", "CharterSchoolParameters", FormMethod.Post))
{
    @Html.DropDownListFor(x => x.SelectedScenario.ID, Model.ScenarioList,
    new { onchange = "submit()"})
}

如何将SelectedScenario.ID传递给控制器?

这是我想要传递给的方法定义:

public ActionResult Index(int? selectedScenario_Id)

我不确定如何匹配名称。

将对象属性传递给控制器

我认为 asp.net mvc 将为您的参数绑定的名称是 SelectedScenario_ID ,试试这个:

[HttpPost]
public ActionResult Index(int? SelectedScenario_ID)
{
   /// code...
}

另一方面,您可以只使用DropDownList作为示例:

@using (Html.BeginForm("Index", "CharterSchoolParameters", FormMethod.Post))
{
   @Html.DropDownList("selectedScenarioId", Model.ScenarioList)
}
[HttpPost]
public ActionResult Index(int? selectedScenarioId)
{
   /// code...
}

如果您使用的是默认的 MVC 路由,您只需要将传递给控制器的参数名称更改为id@Ahmed Ilyas 所说。

[HttpPost]
public ActionResult Index(int? id)
{
    //code
}