我是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>
答案 0 :(得分:1)
您没有将模型发送到视图。
return View();
应该是
return View(model);