2010-09-25 156 views
0

在我的模型,我有這樣的:DROPDOWNLIST在ASP.NET MVC2

public class CustomerModel 
    { 
     public Customer Customer { get; set; } 
     public Language Language { get; set; } 

     public IList<Language> Languages { get; set; } 

     public CustomerModel() 
     { 
      Language = new Language(); 
     } 
    } 

在我看來,我有這樣的:

<%: Html.DropDownList("Id", new SelectList(Model.Languages, "Id", "Code"))%> 

這是工作

但我想當我提交時,將Model.Language.Id設置爲所選值 我試過了,但沒有工作:

<%: Html.DropDownList(m => m.Language.Id, new SelectList(Model.Languages, "Id", "Code"))%> 

Updat1: 我用這個解決方案,確定工作

<%: Html.DropDownList("Language", 
new SelectList(ViewData.Model.Languages, "Id", "Code")) %> 

當我選擇一個客戶,我想看到的語言變化取決於客戶的語言,我這樣做:

<%: Html.DropDownList("Language", new SelectList(ViewData.Model.Languages, "Id", "Code", ViewData.Model.Customer.Language.Id)) %> 

什麼都沒有發生,我仍然看到名單的第一語言,而不是客戶的語言。控制器中的數據是正確的

感謝,

回答

0

這工作得很好,我(你需要的,如果你想傳遞一個lambda表達式中使用Html.DropDownListFor助手):

型號:

public class Language 
{ 
    public int Id { get; set; } 
    public string Code { get; set; } 
} 

public class CustomerModel 
{ 
    public Language Language { get; set; } 
    public IList<Language> Languages { get; set; } 

    public CustomerModel() 
    { 
     Language = new Language(); 
     Languages = new List<Language> 
     { 
      new Language { Id = 1, Code = "en" }, 
      new Language { Id = 2, Code = "fr" }, 
     }; 
    } 
} 

控制器:

public class HomeController : Controller 
{ 
    public ActionResult Index() 
    { 
     return View(new CustomerModel()); 
    } 

    [HttpPost] 
    public ActionResult Index(CustomerModel model) 
    { 
     return View(model); 
    } 
} 

查看:

<% using (Html.BeginForm()) { %> 
    <%: Html.DropDownListFor(
     x => x.Language.Id, 
     new SelectList(Model.Languages, "Id", "Code") 
    ) %> 
    <input type="submit" value="OK" /> 
<% } %> 
+0

我加了一個註釋見 「UPDATE1」 – 2010-09-26 06:18:37

1

使用強類型的HTML輔助DropDownListFor

<%: Html.DropDownListFor(m => m.Language.Id, new SelectList(Model.Languages, "Id", "Code"))%> 
+0

我加了一個註釋,見 「UPDATE1」 – 2010-09-26 06:17:56

+0

不Model.Languages包含Model.Customer.Language對象? – 2010-09-26 07:46:41

+0

Model.Languages有可能的語言(在我的情況下是3)Model.Customer.Language不爲null,並且具有3 – 2010-09-26 08:49:07