单击按钮时传递下拉列表的值

问题描述

我的视图中有一个下拉列表:

@Html.DropDownListFor(m => m.APtTitleData.apt,(IEnumerable<SelectListItem>)ViewBag.apt,"-Select Apt-",new { id = "SelectedAPt",name= "SelectedAPt" })

我在同一个视图中有一个按钮

<a href="@Url.Action("Edit","APtTitle",new { id = Model.APtTitleData.aPtId,SelectedAPt = "???" })">GO</a>

如何将下拉列表的值传递给我的控制器(编辑)?我正在尝试获取按钮的值,但我不确定这是正确的方法。还有其他想法吗?

解决方法

我建议您使用表单将下拉列表中的值提交给控制器。

请查看以下代码:

@using (Html.BeginForm("APtTitle","Edit",FormMethod.Post))
{
    <div class="form-group">
            <label>AptTitles</label>
            <div>
                @Html.DropDownListFor(m => m.APtTitleData.apt,(IEnumerable<SelectListItem>)ViewBag.apt,"-Select Apt-",new { id = "SelectedAPt",name= "SelectedAPt" })
            </div>
        </div>
        
        <div class="form-group">
            <div>
                <input type="submit" value="Submit" />
            </div>
        </div>
    </div>
}

在控制器中,您的代码应类似于以下内容:

[HttpPost]
public ActionResult Edit(string SelectedAPt)
{
   var aPtValue = SelectedAPt;

    // Do what intended with the value
}

您现在应该可以看到控制器中的值了。 尝试一下,如果您遇到问题,请告诉我。