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