我想在受控制中使用属性“ListaDimensiones”并且不明白原因时会出现此错误。
namespace Mkt.Web.Controllers.Cubo
{
//
// ViewModel Classes
public class DimensionesViewModel
{
// Variables Properties
IList<Dimension> _listaDimensiones = new List<Dimension>();
// Properties
public IList<Dimension> ListaDimensiones { get{return _listaDimensiones;} private set{} }
// Constructor
public DimensionesViewModel()
{
_listaDimensiones = Dimensiones.GetListaFiltros(null);
}
}
[HandleError]
public class DimensionesController : Controller
{
//
// GET: /Dimensiones/
public ActionResult Index()
{
return View();
}
}
}
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Mkt.Web.Controllers.Cubo.DimensionesViewModel>" %>
<%@ Import Namespace="Mkt.Web.Helpers" %>
<%@ Import Namespace="Mkt.Web.Models.Endidades" %>
<div>
<!-- Error in this line for "Model.ListaDimensiones" -->
<%= Html.Table("myTable", (IList)Model.ListaDimensiones, null) %>
</div>
错误:对象引用未设置为对象的实例。
答案 0 :(得分:4)
您需要从控制器操作方法将ViewModel类的实例传递给您的视图:
public ActionResult Index()
{
var model = new DimensionesViewModel();
return View(model);
}
答案 1 :(得分:1)
您没有将模型传递给您的视图。
public ActionResult Index()
{
return View();
}
应该是这样的:
public ActionResult Index()
{
var model = new DimensionesViewModel();
return View(model);
}
答案 2 :(得分:1)
您没有将Views Model属性设置为任何内容。
在控制器中将列表传递给View方法。
return View(new DimensionesViewModel());
答案 3 :(得分:1)
您需要为视图提供DimensionesViewModel类的实例。为此,您需要在Index操作中执行以下操作:
public ActionResult Index()
{
return View(new DimensionesViewModel());
}
您可以阅读完整的示例here。