Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Net MVC:如何在提交时从DropDownListFor中获取所选选项_C#_Asp.net_Asp.net Mvc_Asp.net Core_Razor - Fatal编程技术网

C# Net MVC:如何在提交时从DropDownListFor中获取所选选项

C# Net MVC:如何在提交时从DropDownListFor中获取所选选项,c#,asp.net,asp.net-mvc,asp.net-core,razor,C#,Asp.net,Asp.net Mvc,Asp.net Core,Razor,我有Asp.net表单中的dropdownlist,在选择提交选项后,并没有获得实际的价值 没有获取我缺少的内容,并且所选选项没有在操作中检索。下面是代码 查看页面 <div class="inner-box"> @using ICommonInterfaces.Model @model LoginModel @using (Html.BeginForm("ApplicationSwitcher"

我有Asp.net表单中的dropdownlist,在选择提交选项后,并没有获得实际的价值

没有获取我缺少的内容,并且所选选项没有在操作中检索。下面是代码

查看页面

<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>

@使用ICommonInterfaces.Model
@模型逻辑模型
@使用(Html.BeginForm(“ApplicationSwitcher”、“Home”、FormMethod.Get))
{
@DropDownListFor(m=>m.ApplicationNames,新选择列表(Model.ApplicationNames,“TenantId”,“ApplicationId”),“选择应用程序”,
新建{@class=“textboxStyle”,placeholder=“选择您的应用程序…”,autofocus=“autofocus”,
autocomplete=“on”,onkeypress=“btnFocusActivate(此事件)”,id=“un”})
}       
型号

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; }
    }
}
namespace-ICommonInterfaces.Model
{
公共类登录模型
{
公共列表应用程序名称{get;set;}
}
公共类租户应用程序名称
{
公共字符串TenantId{get;set;}
公共字符串ApplicationId{get;set;}
}
}
提交HomeController操作时

    [HttpGet]
    public async Task<IActionResult> ApplicationSwitcher(LoginModel loginModel)
    {
      var applicationNames = loginModel.ApplicationNames; // Count zero
      Console.WriteLine(applicationNames.Count)//0
    }
[HttpGet]
公共异步任务应用程序交换机(LoginModel LoginModel)
{
var applicationNames=loginModel.applicationNames;//计数为零
Console.WriteLine(applicationNames.Count)//0
}
不获取所选选项的原因是什么?如何获取


谢谢。

我将更改方法,使用Request.Form[“nameOfYourDDL”]发布并获取所选项目的值

比如:


@使用ICommonInterfaces.Model
@模型逻辑模型
@使用(Html.BeginForm(“ApplicationSwitcher”、“Home”、FormMethod.Post))
{
@Html.DropDownListFor(“ddlTest”,m=>m.ApplicationNames,新选择列表(“ddlTest”,Model.ApplicationNames,“TenantId”,“ApplicationId”),“选择应用程序”,
新建{@class=“textboxStyle”,placeholder=“选择您的应用程序…”,autofocus=“autofocus”,
autocomplete=“on”,onkeypress=“btnFocusActivate(此事件)”,id=“un”})
}   
在控制器中:

    [HttpPost]
public async Task<IActionResult> ApplicationSwitcher(LoginModel loginModel)
{
     var selectedValue = Request.Form["ddlTest"].ToString
}
[HttpPost]
公共异步任务应用程序交换机(LoginModel LoginModel)
{
var selectedValue=Request.Form[“ddlTest”].ToString
}

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

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

<div class="inner-box">

    @using ICommonInterfaces.Model
    @model LoginModel
    @using (Html.BeginForm("ApplicationSwitcher", "Home", FormMethod.Get))
    {
        @Html.DropDownListFor(m => m.ApplicationNames[0].TenantId, 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>

@使用ICommonInterfaces.Model
@模型逻辑模型
@使用(Html.BeginForm(“ApplicationSwitcher”、“Home”、FormMethod.Get))
{
@Html.DropDownListFor(m=>m.ApplicationNames[0].TenantId,新选择列表(Model.ApplicationNames,“TenantId”,“ApplicationId”),“选择应用程序”,
新的
{
@class=“textboxStyle”,
占位符=“选择您的应用程序…”,
autofocus=“autofocus”,
autocomplete=“on”,
onkeypress=“btnFocusActivate(此,事件)”,
id=“un”,
})
}
结果。

错误CS1503参数2:无法从“System.Collections.Generic.List”转换为“string”
<div class="inner-box">

    @using ICommonInterfaces.Model
    @model LoginModel
    @using (Html.BeginForm("ApplicationSwitcher", "Home", FormMethod.Get))
    {
        @Html.DropDownListFor(m => m.ApplicationNames[0].TenantId, 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>