Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在视图中使用DropDownListFor时如何解决空值问题?_C#_Asp.net Mvc - Fatal编程技术网

C# 在视图中使用DropDownListFor时如何解决空值问题?

C# 在视图中使用DropDownListFor时如何解决空值问题?,c#,asp.net-mvc,C#,Asp.net Mvc,有一个问题我已经排除了一天半,我需要一些帮助。 代码看起来不错,但问题是它返回Null 我可以在视图侧获得该值的属性。 它抛出: 没有ViewData IEnumerable 这就是我到目前为止所做的,我需要一些帮助,我的视图使用多模型,但是它的正确类名和正确属性是正确的 [HttpPost] public ActionResult CourseList() { var course = new List<string>()

有一个问题我已经排除了一天半,我需要一些帮助。
代码看起来不错,但问题是它返回
Null

我可以在
视图侧获得该值的属性。

它抛出:

没有ViewData IEnumerable

这就是我到目前为止所做的,我需要一些帮助,我的
视图
使用
多模型
,但是它的正确类名和正确属性是正确的

 [HttpPost]
       public ActionResult CourseList() 
        {
            var course = 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" 
            };
            // List of items here.
            List<SelectListItem> select_list = new List<SelectListItem>();

            var query = from li in course
                        select
                        new SelectListItem
                        {
                            Value = li.ToString(),
                            Text = li.ToString(),
                        };
            select_list = query.ToList();
            ViewBag.course = select_list;
            eNtsaCourseList eCourse = new eNtsaCourseList();

            return View(eCourse);

        }

  // eNtsaRegCourses.
    public class RegCoursesViewModel
    {
        public eNtsaCourses Courses { get; set; }
        public eNtsaCourseList eCourses { get; set; } // I am using this property for my View to access dropdownlist.
        public eNtsaDashboardViewModel Dashboard { get; set; }
        public List<eNtsaCourseList> lsteNtsaDashboard { get; set; }
        public RegCoursesViewModel MainModel { get; set; }

    }
 public class eNtsaCourseList
    {
        public string CourseLicence { get; set; }
        public string Text { get; set; }

        public string Value { get; set; }
        public string CourseList { get; set; }
    }
                     @using (Html.BeginForm("CourseList", "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(m => m.eCourses.CourseList, ViewBag.course as List<SelectListItem>)
                                              </div>
                                            </div>

                                        }
[HttpPost]
公共行动结果课程列表()
{
var course=新列表()
{“私有(受版权保护)”、“公共领域”、“知识共享许可证”、“抄送署名”、“抄送署名共享”、“抄送署名非商业”,
“抄送归属非商业性股份”、“抄送归属非指令”、“抄送归属非商业性无指令”
};
//这里是项目列表。
列表选择_List=新建列表();
var query=来自过程中的li
选择
新建SelectListItem
{
Value=li.ToString(),
Text=li.ToString(),
};
选择_list=query.ToList();
ViewBag.course=选择\u列表;
eNtsaCourseList eCourse=新的eNtsaCourseList();
返回视图(eCourse);
}
//课程设置。
公共类RegCoursesViewModel
{
公共科目课程{get;set;}
public eNtsaCourseList eCourses{get;set;}//我正在将此属性用于我的视图以访问dropdownlist。
公共EntsDashBoardViewModel仪表板{get;set;}
公共列表lsteNtsaDashboard{get;set;}
public RegCoursesViewModel MainModel{get;set;}
}
公共类eNtsaCourseList
{
公共字符串{get;set;}
公共字符串文本{get;set;}
公共字符串值{get;set;}
公共字符串CourseList{get;set;}
}
@使用(Html.BeginForm(“课程列表”、“主页”、FormMethod.Post))
{
内容许可证
@DropDownListFor(m=>m.eCourses.CourseList,ViewBag.courseas列表)
}

我没有为您提供解决方案,但您不必要地实例化了
select\u list
,然后将其设置为
query.ToList()
。您可以将其声明为
List select\u List
@Audiopolis我也试过了,问题在视图端,请将其视为空。我现在正在调试属性名称。您是否也在
HttpGet
中填充了
ViewBag.course
,因为您已经显示了
POST
代码?