MVC3,Razor,Html.DropDownListFor和Select列表

时间:2011-03-31 10:58:39

标签: asp.net-mvc asp.net-mvc-3

我真的希望有人可以帮助我,因为我完全不知道该怎么做。这就是我现在所拥有的

控制器:

ViewBag.TrialTopic = _trialTopicTable.GetAll(u => u.PartitionKey == PartitionKey);
return View(_dataTable.Get(u => u.PartitionKey == PartitionKey & u.RowKey == RowKey););
}

试用表的模型

[DisplayName("Partition Key")]
public override string PartitionKey { get; set; }
[DisplayName("Row Key")]
public override string RowKey { get; set; }
....
public string TopicDescription { get; set; }
...

主题表的模型

[DisplayName("Partition Key")]
public override string PartitionKey { get; set; }
[DisplayName("Row Key")]
public override string RowKey { get; set; }
public string TopicDescription { get; set; }

查看:

@Html.DropDownListFor(model => model.Trial.TopicDescription, 
new SelectList(ViewBag.TrialTopic, "TrialDescription", "TrialDescription"))

一些解释。 ViewBag.TrialTopic中返回的数据是七个试验主题,该表中数据的列名是“试用说明”。在名为Trial I的主表中,还有“列名”“试用说明”。当视图显示我希望它在下拉列表中显示试用描述的当前值。当我从下拉列表中选择一个新值时,我希望在保存表单时将其保存起来。

我正在使用Windows Azure表存储,因此我不使用任何键在主表中存储数据。我存储了完整的描述。

问题是,使用上面的代码,下拉列表中的值与表单之间似乎没有关联。我看了很多不同的例子,现在我很困惑。希望有人能给我一些建议。

谢谢,

曼迪

2 个答案:

答案 0 :(得分:3)

您是否尝试过设置SelectList的选定值?

@Html.DropDownListFor(model => model.Trial.TopicDescription, 
new SelectList(ViewBag.TrialTopic, "TrialDescription", "TrialDescription", Model.Trial.TopicDescription))

我可能错在Selected值应该是什么。如果是这样,那就改变它应该是的值。

答案 1 :(得分:1)

不应该是:

Html.DropDownListFor(model => model.Trial.TopicDescription, new SelectList(ViewBag.TrialTopic, "TopicDescription", "TopicDescription"))

请注意下拉菜单的“值”和“文本”字段更改。