ASP.NET MVC - Ошибка при желании использовать свойство модели управления - PullRequest
0 голосов
/ 13 ноября 2009

У меня есть эта ошибка при желании использовать свойство "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>

Ошибка: Ссылка на объект не установлена ​​для экземпляра объекта.

Ответы [ 4 ]

4 голосов
/ 13 ноября 2009

Вам необходимо передать экземпляр класса ViewModel вашему представлению из метода действия контроллера:

    public ActionResult Index()
    {
        var model = new DimensionesViewModel();
        return View(model);
    }
1 голос
/ 13 ноября 2009

Вам необходимо предоставить вашему представлению экземпляр класса DimensionesViewModel. Для этого вам нужно сделать что-то подобное в действии Index:

public ActionResult Index()
{
  return View(new DimensionesViewModel());
}

Вы можете прочитать полный пример здесь .

1 голос
/ 13 ноября 2009

Вы ничего не устанавливаете для свойства модели представления.

В вашем контроллере передача вашего списка методу View.

return View(new DimensionesViewModel());
1 голос
/ 13 ноября 2009

Вы не передаете модель вашему виду.

    public ActionResult Index()
    {
        return View();
    }

Должно быть что-то вроде:

    public ActionResult Index()
    {
        var model = new DimensionesViewModel();
        return View(model);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...