C# 模型绑定的问题

C# 模型绑定的问题,c#,model-view-controller,asp.net-mvc-5,model-binding,C#,Model View Controller,Asp.net Mvc 5,Model Binding,我不清楚这为什么不起作用 public class Regiones { [DisplayName("Select the region")] public int SelectedId { get; set; } public IEnumerable<SelectListItem> SelectedRegion { get; set; } public Regiones() { SelectedRegion = new[]{

我不清楚这为什么不起作用

public class Regiones
{
    [DisplayName("Select the region")]
    public int SelectedId { get; set; }
    public IEnumerable<SelectListItem> SelectedRegion { get; set; }
    public Regiones()
    {
        SelectedRegion = new[]{
            new SelectListItem { Value = "BR", Text = "Brasil" },
            new SelectListItem { Value = "EUNE", Text = "Europe East" },
            new SelectListItem { Value = "EUW", Text = "Europe West" },
            new SelectListItem { Value = "KR", Text = "Korea" },
            new SelectListItem { Value = "LAN", Text = "Latin America North" },
            new SelectListItem { Value = "LAS", Text = "Latin America South" },
            new SelectListItem { Value = "NA", Text = "Northamerica" },
            new SelectListItem { Value = "OCE", Text = "Oceania" },
            new SelectListItem { Value = "TR", Text = "Tr" },
            new SelectListItem { Value = "PBE", Text = "PBE" },
            new SelectListItem { Value = "Global", Text = "Global" }
        };
    }
}
视图:


@使用(@Html.BeginForm(“Featured”、“FeaturedGames”、FormMethod.Post、new{id=“form”}))
{
@Html.AntiForgeryToken();
@LabelFor(x=>x.SelectedId)
@Html.DropDownListFor(x=>x.SelectedId,Model.SelectedRegion,new{@id=“regiones”})
}

我 我试过这个: 这是:

当我单击“发送”按钮时,所选ID中的结果始终为0


我会错过什么?提前谢谢你

问题是你的
字符串
SelectListItem
中输入,但是你的
SelectedId
是int类型

下一行中的
类型为
字符串

new SelectListItem { Value = "BR", Text = "Brasil" },
在下面的代码行中选择edid
int

[DisplayName("Select the region")]
    public int SelectedId { get; set; }
因此,该值在转换过程中丢失。将
SelectedId
的数据类型更改为
string
,以解决问题


在这里摆弄:

您是否尝试过类似的
region.SelectedRegion.ToList().Where(x=>x.Value==region.SelectedId)。Text
关键是在提交表单时。它看起来像是空的,然后“SelectedId总是=0”,并且它没有在其中获得coorrect值。模型“控制器中的区域”(回发)始终为空。。。
new SelectListItem { Value = "BR", Text = "Brasil" },
[DisplayName("Select the region")]
    public int SelectedId { get; set; }