设置DropDownListFor

时间:2012-01-17 12:32:47

标签: asp.net-mvc html.dropdownlistfor

我在我的模型中有这个,内容是国家的完整列表:

public IList<LookupCountry> LookupCountry { get; set; };
public int SelectedCountry { get; set; }

看起来像这样

public class LookupCountry : ILookup
{
    public virtual int Id { get; set; }
    public virtual int Code { get; set; }
    public virtual string FR { get; set; }
}

public interface ILookup
{
    int Id { get; set; }
    int Code { get; set; }
    string FR { get; set; }
}

在视图中,我想显示国家/地区列表和所选值。

@Html.DropDownListFor(c => c.LookupCountry.Id,  
    new SelectList(Model.LookupCountry, 
    "Id", 
    "Value", 
    Model.SelectedCountry), 
    "-- Select Country --")

当我执行此操作时,出现错误,c => c.LookupCountry.Id中的 ID 在视图中不可用。

有什么想法吗?

谢谢,

2 个答案:

答案 0 :(得分:0)

c.LookupCountry.Id更改为c.SelectedCountry应该可以解决问题。由于LookupCountry是一个国家集合,因此没有Id属性。并且您希望将选定值从下拉列表绑定到SelectedCountry属性。

@Html.DropDownListFor(c => c.SelectedCountry,  
    new SelectList(Model.LookupCountry, 
    "Id", 
    "Value", 
    Model.SelectedCountry), 
    "-- Select Country --")

答案 1 :(得分:0)

这是因为模型中的LookupCountry类型为IList<LookupCountry>。整个列表不包含id,其所有成员一个接一个地包含id。可能你想重写你的方法如下

@Html.DropDownListFor(c => c.SelectedCountry,  
    new SelectList(Model.LookupCountry, 
    "Id", 
    "Value", 
    Model.SelectedCountry), 
    "-- Select Country --")