微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将选定的文本从 DropdownList 发送到控制器

如何解决如何将选定的文本从 DropdownList 发送到控制器

我想将下拉列表中的选定文本字段发送到控制器。 当我使用如下代码时,我可以将id号发送给控制器,但我在列表中选择的值传递null。

另外,如果模型中有注册值,我希望在打开页面时在下拉列表中选择该字段。

控制器

    public ActionResult Degerlendir(int id,string CV_STATU)
        {
        using (MULAKATDBEntities1 ent = new MULAKATDBEntities1())
                    {
                        Cvviewmodel cv = new Cvviewmodel();
                        var entData = ent.CV.FirstOrDefault(a => a.ID_CV == id);
                        entData.CV_STATU = CV_STATU;
                        ent.SaveChanges();
                     } 
        }

在视图中

@using (Html.BeginForm("Degerlendir","Home",FormMethod.Post))
{
<input type="hidden" name="id" value="@Model.Cv.ID_CV" />
 @Html.DropDownListFor(model => model.Cv.CV_STATU,new List<SelectListItem> {
            new SelectListItem() { Text = "Secilmedi" },new SelectListItem() { Text = "Kabul edildi" },new SelectListItem() { Text = "Reddedildi" } },new {@id="cv_statu",@class = "form-control" })
<input type="submit" id="btnSubmit" value="KAYDET" class="btn btn-add" />
 }

解决方法

在 HTML 帮助器 htmlAttributes 中设置 @name="cv_statu",以便像这样绑定到 POST 上的参数。

还将控制器方法参数更改为小写 cv_statu。只有通过 URL 路由传递的参数名称不区分大小写。

,

我假设您在 ActionResult 的代码中共享的内容已经是 HttpPost 动作动词。也应该有一个适当的 HttpGet

要解决您的问题,请确保您在 DropDownListFor 上设置的第一个参数应与 Degerlendir 的参数匹配

@Html.DropDownListFor(model => model.CV_STATU,new List<SelectListItem> {
        new SelectListItem() { Text = "Secilmedi",Value = "Secilmedi" },new SelectListItem() { Text = "Kabul edildi",new SelectListItem() { Text = "Reddedildi",Value = "Reddedildi",Selected = true} },"Please select an option",new {@id="cv_statu",@class = "form-control" })

如您所见,我更改了您的:

@Html.DropDownListFor(model => model.Cv.CV_STATU

致:

@Html.DropDownListFor(model => model.CV_STATU

因为您在此处设置的内容将在您的 HTML 上设置 name 属性。这将绑定在您的 ActionResultDegerlendir 上的参数上,尤其是您的参数:

string CV_STATU

最后,我在您的 Value 上添加了 SelectListItem,因为无论您在 DropDownList 上选择什么,它都会传递给您的 ActionResult。要设置默认选定值,只需添加 Selected = true

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。