首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法访问dropdownlistFor的选定值

无法访问dropdownlistFor的选定值
EN

Stack Overflow用户
提问于 2014-03-27 10:35:17
回答 1查看 58关注 0票数 0
代码语言:javascript
复制
 var vatRate = new List<SelectListItem>();
            vatRate.Add(new SelectListItem { Text = "Please select...", Value = "0", Selected = false });
            vatRate.Add(new SelectListItem { Text = "0%", Value = "0", Selected = false });
            vatRate.Add(new SelectListItem { Text = "5%", Value = "5", Selected = false });
            vatRate.Add(new SelectListItem { Text = "20%", Value = "20", Selected = false });
            model.VatRate = vatRate;

这是初始化列表的代码,它将在我的视图中填充我的多巴胺列表。在我的模型部分是

代码语言:javascript
复制
[Required]
        [Display(Name = "VAT Rate")]
        public IEnumerable<SelectListItem> VatRate { get; set; }
        public IEnumerable<SelectListItem> selectedVatRate { get; set; }

在我看来我确实喜欢

代码语言:javascript
复制
 @Html.DropDownListFor(m => m.selectedVatRate, Model.VatRate, new { @class = "form-control" })

然而,当此页面发布时,我将得到getting的count = 0

为什么会这样?

是否只有从下拉列表本身接受VALUE的方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-27 10:39:15

这就是它的工作原理。关于POST操作的内容是在表单上张贴了哪些参数。例如,下拉列表将发布一个数字(或字符串),表示选定的值(0、5、20)。所以基本上不是

代码语言:javascript
复制
public IEnumerable<SelectListItem> selectedVatRate { get; set; }

你需要

代码语言:javascript
复制
public int selectedVatRate { get; set; }

才能正确处理这件事。然后,在post上,selectedVatRate将包含所选值作为整数(例如,在用户选择的5%选项中)。

旁注。默认列表项和第一个选项0%的值相同。这看起来不太对,因为你无法在邮件中区分其中一个和另一个。因此,您可能希望默认值为空:

代码语言:javascript
复制
Text = "Please select...", Value = ""

并将selectedVatRate字段转换为int?。然后,在post中,如果选择了默认选项,您将得到null,在0%的情况下将得到0。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22684946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档