将 Html.DropDownList 的选定值传递给控制器

Posted

技术标签:

【中文标题】将 Html.DropDownList 的选定值传递给控制器【英文标题】:pass the selected value of Html.DropDownList to controller 【发布时间】:2021-11-12 00:31:15 【问题描述】:

我的视图页面中有一个下拉菜单。由于下拉列表只有两个值并且不会更改,因此我们决定创建静态下拉列表。

@html.DropDownList("RelationshipWithFather", new List<SelectListItem>()
 
   new SelectListItem()  Text= "son", Value = "son" ,
   new SelectListItem()  Text= "daughter", Value = "daughter" 
 , "relationship...", new  @class = "form-control" )

如何传递这个RelationshipWithFather下拉选择的值来创建控制器方法。

public ActionResult Create(PatientInfo vdm_)
        
            if (ModelState.IsValid)
            
                PatientInfo vdm = new PatientInfo();
                vdm.relationshipWithPatient = // selected value of RelationshipWithFather
            
            
            
        

我必须将所选下拉列表的值设置为模型类的relationshipWithPatient 属性。

【问题讨论】:

如果您查看文档,您会看到 SelectListItem 具有属性 Selected。 docs.microsoft.com/pl-pl/dotnet/api/… 【参考方案1】:

尝试使用 DropDownListFor

@model PatientInfo
....

@
 var items= new List<SelectListItem>()
 
   new SelectListItem()  Text= "son", Value = "son" ,
   new SelectListItem()  Text= "daughter", Value = "daughter" 
 ;


@using (Html.BeginForm()) 

@Html.DropDownListFor (model=>model.relationshipWithPatient, items , "relationship...", new  @class = "form-control" )


或者我更喜欢

<select class="form-control" asp-for="@Model.relationshipWithPatient" asp-items="@items"></select>

动作

public ActionResult Create(PatientInfo vdm)

    if (ModelState.IsValid)
    
      var selected=  vdm.relationshipWithPatient; //selected value of RelationshipWithFather
.....
   

【讨论】:

以上是关于将 Html.DropDownList 的选定值传递给控制器的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET MVC 将发布的值设置为下拉列表

如何从 Controller MVC 中获取选定的下拉值

在编辑页面的表格中的每一行中设置下拉列表的选定值

将当前值的 html.dropdownlist 传递给 Actionlink?

使用 JQuery 将选择属性添加到 Html.DropDownList

如何使用 asp.net mvc Html.DropDownList 帮助器将自定义项添加到下拉列表的顶部?