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

Asp.Net MVC:如何在提交时从DropDownListFor中获取选择的选项

如何解决Asp.Net MVC:如何在提交时从DropDownListFor中获取选择的选项

我有一个Asp.net形式的下拉列表,在提交的选定选项没有在Action中获得价值之后。

没有得到我所缺少的内容,并且选择的选项未在Action中检索。这是代码

查看页面

<div class="inner-Box">

        @using ICommonInterfaces.Model
        @model LoginModel
        @using (Html.BeginForm("ApplicationSwitcher","Home",FormMethod.Get))
        {
          @Html.DropDownListFor(m => m.ApplicationNames,new SelectList(Model.ApplicationNames,"TenantId","ApplicationId"),"Select Application",new { @class = "textBoxStyle",placeholder = "Select your application...",autofocus = "autofocus",autocomplete = "on",onkeypress = "btnFocusActivate(this,event)",id = "un" })
          <input type="submit" value="NEXT" class="rectangle" id="submitNext" disabled="disabled" />
        }       
</div>

模型

namespace ICommonInterfaces.Model
{
    public class LoginModel
    {
        public List<TenantApplicationNames> ApplicationNames { get; set; }
    }

    public class TenantApplicationNames
    {
        public string TenantId { get; set; }
        public string ApplicationId { get; set; }
    }
}

关于“提交HomeController操作”

    [HttpGet]
    public async Task<IActionResult> ApplicationSwitcher(LoginModel loginModel)
    {
      var applicationNames = loginModel.ApplicationNames; // Count zero
      Console.WriteLine(applicationNames.Count)//0
    }

没有选择选项的原因是什么?如何获取

谢谢。

解决方法

我将方法更改为POST,并使用Request.Form [“ nameOfYourDDL”]

获取所选项目的值

赞:

<div class="inner-box">

    @using ICommonInterfaces.Model
    @model LoginModel
    @using (Html.BeginForm("ApplicationSwitcher","Home",FormMethod.Post))
    {
      @Html.DropDownListFor("ddlTest",m => m.ApplicationNames,new SelectList("ddlTeste",Model.ApplicationNames,"TenantId","ApplicationId"),"Select Application",new { @class = "textboxStyle",placeholder = "Select your application...",autofocus = "autofocus",autocomplete = "on",onkeypress = "btnFocusActivate(this,event)",id = "un" })
      <input type="submit" value="NEXT" class="rectangle" id="submitNext" disabled="disabled" />
    }   

在控制器中:

    [HttpPost]
public async Task<IActionResult> ApplicationSwitcher(LoginModel loginModel)
{
     var selectedValue = Request.Form["ddlTest"].ToString
}
,

我测试@using (Html.BeginForm()生成的表单。在控制器中,loginModel接收具有数组类型的数据。为了在控制器中获取下拉列表的值,需要修改此代码。

在ViewPage中,m.ApplicationNames需要更改为数组。 m.ApplicationNames[0].TenantId

<div class="inner-box">

    @using ICommonInterfaces.Model
    @model LoginModel
    @using (Html.BeginForm("ApplicationSwitcher",FormMethod.Get))
    {
        @Html.DropDownListFor(m => m.ApplicationNames[0].TenantId,new SelectList(Model.ApplicationNames,new
     {
         @class = "textboxStyle",id = "un",})
        <input type="submit" value="NEXT" class="rectangle" 
         id="submitNext" @*disabled="disabled"*@ />
    }
</div>

结果。 enter image description here

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