C# System.Web.Mvc.WebViewPage<;T>;。Model.get返回null
我正在尝试创建我的第一个ASP.NET MVC应用程序,但两天以来我无法解决我的问题 我使用的是实体框架代码优先的方法。我想创建DropDownListFor,但始终存在以下错误: System.NullReferenceException System.Web.Mvc.WebViewPage.Model.get返回空值 我的模型:C# System.Web.Mvc.WebViewPage<;T>;。Model.get返回null,c#,asp.net-mvc,razor,viewmodel,C#,Asp.net Mvc,Razor,Viewmodel,我正在尝试创建我的第一个ASP.NET MVC应用程序,但两天以来我无法解决我的问题 我使用的是实体框架代码优先的方法。我想创建DropDownListFor,但始终存在以下错误: System.NullReferenceException System.Web.Mvc.WebViewPage.Model.get返回空值 我的模型: public class Animals { public int AnimalsId { get; set; } publ
public class Animals
{
public int AnimalsId { get; set; }
public int ClientsId { get; set; }
public string Name { get; set; }
public int TypesId { get; set; }
public float Age { get; set; }
public float Weight { get; set; }
public virtual Types Types { get; set; }
public IEnumerable<Clients> ClientsList { get; set; }
public virtual ICollection<BookVisit> AnimalsVisits { get; set; }
}
您能看一下吗?从评论中可以看出,您没有向视图传递有效的视图模型对象。您的视图代码需要传递给它的有效模型,并且帮助器方法使用该模型的不同属性
public ActionResult Create()
{
var clients = new List<Clients>
{
new Clients { ClientsId = 50, Name = "Timo" },
new Clients { ClientsId = 51, Name = "Microsoft" }
};
var vm = new Animals
{
ClientsList = clients
};
return View(vm);
}
此错误也可能是由于尝试在razor视图中使用空模型造成的。在这种情况下,请在使用模型之前检查模型是否为空,如下所示:
@if (Model != null) {
<a onclick="get('@Url.Action("GetEmployee", "DemoController")', @Model.Id)" ></a>
}
@if(Model!=null){
}
希望这对您有所帮助。首先,您的
SelectList
调用错误,为什么要将所有属性名称传递给它?只需为值传递一个,为文本传递一个newselectlist(Model.ClientsList,“ClientsId”,“Name”)
您的GET操作方法是什么样的?您正在将视图模型从该视图传递到视图吗?谢谢您的回答。我将下拉列表替换为“@Html.DropDownListFor(model=>model.ClientsId,newselectlist(model.ClientsList,“ClientsId”,“Name”)”。我的get方法是://get:Animal public ActionResult Create(){return View();}您需要从get-action方法传递一个Animals
对象,因为您的视图代码希望您的意思是这样的://get:Animal public ActionResult Create(){Animals testObj=new Animals();返回视图(testObj);}
public ActionResult Create()
{
var clients = new List<Clients>
{
new Clients { ClientsId = 50, Name = "Timo" },
new Clients { ClientsId = 51, Name = "Microsoft" }
};
var vm = new Animals
{
ClientsList = clients
};
return View(vm);
}
@model Animals
@Html.DropDownListFor(model => model.ClientsId,
new SelectList(Model.ClientsList, "ClientsId", "Name"))
@if (Model != null) {
<a onclick="get('@Url.Action("GetEmployee", "DemoController")', @Model.Id)" ></a>
}