在MVC4中下拉列表

时间:2012-12-12 10:18:33

标签: asp.net-mvc-4

我需要在我的页面上建立下拉列表。我的目的是根据选择的货币更新我的页面上的价格,因此如果用户将在DDL中选择$,则会将页面上的价格更新为$,如果用户选择£,则将以£显示价格。我的产品的价格(以美元和英镑计算)存储在数据库中。

有什么提示吗?

干杯球员


感谢@drywoods的回复 到目前为止我得到了这个: 在索引文件

@Html.DropDownList("Currency", 
                   new SelectList(ViewBag.CurrencyList, "Key", "Value"), 
                   new { Class = "ddlStyle" }
                   )

和控制器:

ViewBag.CurrencyList = new List<KeyValuePair<string, string>> 
                                  { 
                                      new KeyValuePair<string, string>("pound", "£")
                                      , new KeyValuePair<string, string>("dollar", "$")
                                      , new KeyValuePair<string, string>("euro", "€")
                                  };
            GetLoadedMVC.Models.CurrencyModel model = new GetLoadedMVC.Models.CurrencyModel();
            return View();

所以我在我的页面上得到了ddl,但它还没有做任何事情。 从这里去哪里?

1 个答案:

答案 0 :(得分:0)

嗯,对我来说这是一个简单的问题。 让我们把它分解成小部分:

1 - 您需要一个组合框或其他东西供用户更改货币:

$("#CurrencyId").change( function() {..... }

在这个Jquery代码中,您可以发布一个表单,其中您有一个接收CurrencyId的操作(控制器)。

2-在此操作(控制器)中,您可以将此值保存在cookie或会话或用户数据库条目中。

3-注意:对于“第一”时间,此值需要通过默认值初始化:示例:id 2表示€(欧元)。

4-现在,当您查询数据库以检索具有某些值的“对象”时。 为简化操作:在每个操作中保留相同的货币,并写下该条目中使用的货币:示例:

名称[TV LCD Philips],Cost [100],CurrencyId [1],其中1表示$

5 - 您需要一种服务/方法,您可以将一种货币的金额转换为其他货币。

6 - 现在,在控制器或服务中或某个地方,您需要根据列表中的每个元素调用此服务/转换方法。

你明白了吗?