C# Net MVC:如何在提交时从DropDownListFor中获取所选选项
我有Asp.net表单中的dropdownlist,在选择提交选项后,并没有获得实际的价值 没有获取我缺少的内容,并且所选选项没有在操作中检索。下面是代码 查看页面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"
<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>