【发布时间】:2020-12-25 15:45:24
【问题描述】:
我需要一些帮助,在我看来,我正在返回一个空值。我想得到的是创建 dropdownlistFor 时的值列表。问题是我该如何解决这样的错误?以下是我的逻辑,需要一些关于如何组队的帮助。
// Model
// This is for course-list.
// This is for course-list.
public class eNtsaDashboardViewModel
{
public string CourseName { get; set; }
public List<eNtsaDashboardViewModel> CourseLicence { get; set; }
public string Text { get; set; }
public string Value { get; set; }
}
// Mutliple Model
public class RegCoursesViewModel
{
public eNtsaCourses Courses { get; set; }
public eNtsaDashboardViewModel Dashboard { get; set; }
public List<eNtsaDashboardViewModel> lsteNtsaDashboard { get; set; }
public RegCoursesViewModel MainModel { get; set; }
}
// View
@using (Html.BeginForm("SuperAdmin", "Home", FormMethod.Post))
{
<div class="form-group row">
<label for="Content-Licence" class="col-sm-3 col-form-label">Content Licence</label>
<div class="col-sm-5">
@Html.DropDownListFor(model => model.Dashboard.CourseLicence, new SelectList(Model.lsteNtsaDashboard)) **// Return a null object.**
</div>
</div>
}
public ActionResult SuperAdmin() {
var list = new List<string>() { "Private(Copyrighted)", "Public Domain", "Creative Commons Licences", "CC Attribution", "CC Attribution Share ALike", "CC Attribution Non-Commercial",
"CC Attribution Non-Commercial Share Alike", "CC Attribution Non Directive", "CC Attribution Non-Commercial No Directives" };
ViewBag.list = list;
return View();
}
【问题讨论】:
-
你永远不会返回一个模型 -
return View();返回一个空视图。您已将选项列表放入 ViewBag,但随后尝试从模型中读取它。确保您了解模型和视图袋之间的区别。 -
@Adyson 给定的逻辑我到底缺少什么?
-
你已经写了
new SelectList(Model.lsteNtsaDashboard),但是 1)return View();表明你没有返回任何类型的模型对象,所以Model在你的视图中将是空的。并且 2) 即使您返回了一个模型,lsteNtsaDashboard仍然是 null,因为您没有填充它。事实上,我什至不确定你的模型类中是否存在这样的属性。并且 3) 您已经创建了list并将其添加到 viewBag 但您没有将它用于视图中的任何内容。您希望数据从哪里来填充您的 SelectList?您目前的代码没有任何意义。
标签: c# asp.net-mvc bootstrap-4 html.dropdownlistfor