c# - 扩展 SelectList 类后,SelectListItem 未通过下拉菜单设置
问题描述
我正在尝试扩展 SelectListItem 类以添加另一个名为 CardColor 的属性。但是,当我尝试访问控制器中的属性时,我得到
NullReferenceException:对象引用未设置为对象的实例....
return View("StringView", c.IssueSelected.CardColor);
控制器:
[HttpPost]
public async Task<ActionResult> CardCreate(UpdateCardFormOptions c)
{
return View("StringView", c.IssueSelected.CardColor);
}
看法
@using (@Html.BeginForm())
{
<p><label>Issue Category*:</label> @Html.DropDownListFor(c => @Model.IssueSelected, Model.IssueList, new { @class = "form-control", @style = "width: 350px" })</p>
}
模型:
public IssueSelectListItem IssueSelected { get; set; }
public List<IssueSelectListItem> IssueList = new List<IssueSelectListItem>() {
new IssueSelectListItem() {Text="xxx", Value="yyy",CardColor="pink"},
};
public class IssueSelectListItem : SelectListItem
{
public string CardColor { get; set; }
}
解决方案
这篇文章给了我一个线索,原来我需要在视图中设置值 CardColor,我不能只设置对象等效。我的视图需要根据我的下拉选项设置 CardColor,如下所示:
<p><label>Issue Category*:</label> @Html.DropDownListFor(c => @Model.IssueSelected.CardColor, Model.IssueList, new { @class = "form-control", @style = "width: 350px" })</p>
不会接受我自己的答案,仍然希望有人有更好的答案,这只是解决了我的直接问题
推荐阅读
- python - python中的mdo_import_help在哪里
- angular - 带有 ng-template 的 Angular 内容子项不起作用
- c - 通过一维数组初始化程序初始化未知大小的二维数组是否符合标准?
- javascript - 如果版本不同,如何在生产中比较 react js 中的构建哈希以清除缓存?
- android - Google AdMob Unity 插件无法在旧的 Android 版本上运行 - ClassNotFoundException - 这是预期的行为吗?
- php - 如何根据用户名/学号显示只能由特定用户下载的文件?
- python - 如何为我的机器学习模型将数据从形状 (256, 60) 转换为 (96, 64)?
- python - Pyqt5 将鼠标悬停在其上时更改 qpushbutton 样式表
- python - 使用 Python 解析嵌套的 json 数据
- compiler-construction - 为什么要引入运行时?