我的asp.net MVC3应用程序中有一个Razor视图,其下拉列表如下:
@Html.DropDownListFor(model => model.Account.AccountType, new SelectList(Model.AccountTypes, "AccountTypeCode", "Abbreviation"))
此下拉列表位于表单内。当表单被发布到action方法并且viewmodel因模型绑定而被填充时,它获取值(AccountTypeCode)而不是dropdownlist的文本“Abbreviation”属性。我想得到这两个。我怎样才能在后期行动方法中获得这些。
请建议。
答案 0 :(得分:0)
如果您需要对象的多个属性作为下拉列表的值,最简单的方法是在分部类中创建这些属性的组合 EF 4, how to add partial classes这个问题可以帮助你。您将能够将您将提供的一个属性下的值组合到您的下拉帮助程序。
如果您不想使用部分课程,我建议您创建自己的帮助程序,这比尝试使用不符合您需求的内容要容易得多。你可以这样做:
@helper CustomDropdown(string name, IEnumerable<AccountTypes> valueList)
{
<select>
@foreach (var item in valueList)
{
<option value="@item.Abbreviation @AccountTypeCode">@item.Abbreviation</option>
}
</select>
}
Google“创建内联HTML帮助程序”以获取有关该主题的宝贵资源
答案 1 :(得分:0)
我最近一直在努力,我能做的最好的事情是:
ViewBag.Message = myModel.myProperty.ToString().
在控制器动作中。假设myProperty
为AccountType
。
然后在我看来我刚刚做了
@ViewBag.Message
我遇到的下一个问题是它吐出了确切的文字,没有间距。我不得不使用帮助器来添加间距(但它是基于每个单词大写,因此“ThisIsSomeText”将显示为“This Is Some Text”。