首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在MVC4 ViewModel、控制器、视图中使用字典?

如何在MVC4 ViewModel、控制器、视图中使用字典?
EN

Stack Overflow用户
提问于 2013-12-03 13:20:56
回答 2查看 9.3K关注 0票数 5

我有一个像下面这样的ViewModel,

代码语言:javascript
运行
复制
public class EnrollPlanPriceLevelViewModel
{
    public EnrollPlanPriceLevel EnrollPlanPriceLevels { get; set; }        
    public Dictionary<PriceLevel,decimal> Prices { get; set; }

}

我的视图中的代码,但我无法创建价格视图。请帮帮我!

代码语言:javascript
运行
复制
 @{
int i = 0;
foreach (FCA.Model.PriceLevel p in ViewBag.PriceLevelID)
{
    i = i + 1;
                    <div class="span4">                            
                        @Html.TextBoxFor(model => model.Prices[p], new { @placeholder = "Price" })
                    </div>
}
                }

我想如何在Controller中调用Dictionary对象值?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-03 20:55:07

ViewModel:

代码语言:javascript
运行
复制
public class EnrollPlanPriceLevelViewModel
{

    public EnrollPlanPriceLevel EnrollPlanPriceLevels { get; set; }
    public Dictionary<string,decimal> Prices { get; set; }      
}

我的控制器的Get方法应该初始化'Key‘和值,如下所示。以便您可以在视图中为每个KeyValue对进行循环。

控制器的GET方法:

代码语言:javascript
运行
复制
 public ActionResult Create()
    {
        var model = new EnrollPlanPriceLevelViewModel();
        model.Prices = new Dictionary<string, decimal>();
        foreach (PriceLevel p in db.PriceLevelRepository.GetAll().ToList())
        {
            model.Prices.Add(p.PriceLevelID.ToString(), 0);
        }            
        return View(model);
    }

使用字典查看,如下所示:

代码语言:javascript
运行
复制
 <div class="span12">
                @{           
foreach (var kvpair in Model.Prices)
{        
                    <div class="span4">
                        @Html.TextBoxFor(model => model.Prices[kvpair.Key], new { @placeholder = "Price" })
                         @Html.ValidationMessageFor(model => model.Prices[kvpair.Key])
                    </div>

}
                }
            </div>

控制器的POST方法:显示字典的值

票数 8
EN

Stack Overflow用户

发布于 2013-12-03 15:58:50

prices是一个字典项(例如KeyValuePair<PriceLevel, decimal>)。

因此,必须分别绑定该对的每个属性:KeyValue

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20343480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档