NullReferenceException发生在DropDownListFor,ASP.NET MVC中

时间:2017-02-20 05:27:55

标签: c# asp.net-mvc model-view-controller nullreferenceexception html.dropdownlistfor

我是ASP.NET MVC的新手。我正在使用个人用户帐户处理示例项目。我在项目文件夹中创建了一个新区域,它包含UserManagement文件夹。它包含一个名为UserManagementMethods.cs的文件,其中包含以下代码:

namespace Library.Areas.UserManagement
{
    public  class UserManagementMethods
    {
            public  IEnumerable<string> GetGenderList()
            {
            List<string> GenderGroup =  new List<string>
                                                        {
                                                            "Male",
                                                            "Female",
                                                            "Not in the Above",
                                                        };
            return GenderGroup;

            }

            public IEnumerable<SelectListItem> GetSelectedGenderItem(IEnumerable<string> elements)
            {

                foreach (var element in elements)
                {
                    selectList.Add(new SelectListItem
                    {
                        Value = element,
                        Text = element
                    });
                }

                return selectList;
            }

    }
}

在AccountController中,我创建了一个UserManagementMethods对象,userManagement:

 using Library.Areas.UserManagement;
 ........
 ........
 UserManagementMethods userManagement = new UserManagementMethods();

然后在AccountController的Register()中,我调用了UserManagementMethods方法

var genderList   = userManagement.GetGenderList();
var model = new RegisterViewModel();
model.GenderList = userManagement.GetSelectedGenderItem(genderList);
return View();

我在Register.cshtml中创建了一个DropDownList

<div class="form-group">
   @Html.LabelFor(m => m.Gender, new { @class = "col-md-4 control-label" })
   <div class="col-md-8">
      @Html.DropDownListFor(m => m.Gender, Model.GenderList, "Select An  Option", new { @class = "form-control" })
   </div>
</div>

当我运行项目并导航到/Account/Register时,在DropDownListFor Field附近发生 NullReferenceException

/Account/Register

  应用程序中的服务器错误。

     

对象引用未设置为对象的实例。

     

描述:执行期间发生了未处理的异常   当前的网络请求。请查看堆栈跟踪了解更多信息   有关错误的信息以及它在代码中的起源。

     

异常详细信息:System.NullReferenceException:不是对象引用   设置为对象的实例。

     

来源错误:

Line 49: @Html.LabelFor(m => m.Gender, new { @class= "col-md-4 control-label"})<
Line 50:   <div class="col-md-8"> 
Line 51:       @Html.DropDownListFor(m => m.Gender, Model.GenderList, "Select An  Option", new { @class = "form-control" })
Line 52:   </div> 
Line 53:</div>

1 个答案:

答案 0 :(得分:1)

您没有将模型发送到视图。

return View();

应该是

return View(model);