2010-12-17 91 views
0

选择列表项我仍然this--ASP.NET MVC 2 - 无需数据库

所有我终究是一个订单挣扎,最初这将是一台笔记本电脑订单,但它可能是一台电脑,打印机等。所以我有一个订单控制器笔记本电脑行动这使得一个新的笔记本电脑型号。在模型中,我想收集诸如客户名称,客户详细信息等各种信息。在我的模型中,我也想保留一个选择列表,但我一直在尝试很长时间,只是似乎无法让它运行。我的笔记本电脑型号有这样的:

--Laptop型号选择列表

public SelectList screenSize = new SelectList(new[] 
    { 
     new SelectListItem { Text = "11.6", Value = "11.6" }, 
     new SelectListItem { Text = "15.6", Value = "15.6" }, 
     new SelectListItem { Text = "17", Value = "17" } 
    }, "Value", "Text"); 

在控制器我接受后

[HttpPost] 
    public ActionResult Index(Laptop laptopToEmail) 
    { 
     if (ModelState.IsValid) 
     { 
      ...send an email 
     } 
     else return View(laptopToEmail) 
    } 

在我能够渲染出的视图中的笔记本电脑项目列表和我有一个选择列表,但我没有得到一个值传递给电子邮件时,我使用

laptopToEmail.screenSize.SelectedValue 

该视图有这个帮手。

<%: Html.DropDownList("screenSize",Model.screenSize) %> 

我在这里错过了什么吗?毫无疑问,如果没有MVC数据库,选择列表就无法工作。

回答

1

你知道,所有这些neato MVC Html助手都有HTML等价物。对于2项下拉,为什么不写一些HTML:

<select> 
    <option value="a">Option A</option> 
    <option value="b">Option b</option> 
</select> 
+0

如果我说,在我的模型中的公共字符串,然后放置在选择列表中的HTML的名称标记,将工作以匹配我的模型属性,但无疑,作为视图的dirtys MVC有选择列表而不是模型?在我的控制器中,我可以使用if(ModelState.IsValid)来处理HttpPost,它会从HTML选择列表中获取值 - 我刚刚测试过它,它可以工作,但我不确定这是否很好SOC – Aaron 2010-12-17 16:22:03

+0

没有任何法律规定你需要使用相同的模式才能返回。 。 。 – 2010-12-17 16:38:03