Элемент модели, переданный в ViewDataDictionary, имеет тип 'Castle.Proxies.Model' в nopcommerce 4.2. - PullRequest
0 голосов
/ 12 июня 2019

Эта ошибка выдает меня, когда я передаю данные в модель и вызываю представление.

Вот полная ошибка показывает,

Произошло необработанное исключение при обработке запроса. InvalidOperationException: элемент модели, передаваемый в ViewDataDictionary, имеет тип 'Castle.Proxies.VendorProxy', но для этого экземпляра ViewDataDictionary требуется элемент модели типа 'System.Collections.Generic.IList`1 [Nop.Web.Models.Common.VendorDetailModel. ].

Теперь я создаю одну модель, один вид и контроллер в nopcommerce 4.2.

Вот мое модельное место,

Nop.Web => Models => Common => VendorDetailModel

Вот код режима

public VendorDetailModel()
{
    Address = new List<AddressModel>();
}
public string Name { get; set; }       

public IList<AddressModel> Address { get; set; }

Здесь расположен контроллер

Nop.Web => Контроллеры => CommonController => Vendordetail (метод)

Вот код контроллера

public virtual IActionResult Vendordetail(int vendorId)
{
    var model = _vendorService.GetVendorById(vendorId);
    return View("Vendordetail",model);
}

Здесь размещен вид,

Nop.Web => Views => Common => Vendordetail.cshtml

Вот код вида

@model VendorDetailModel
content.......

Итак, эта ошибка отображается, когда я помещаю @ model VendorDetailModel в файл представления, в то время как, если я удаляю эту строку, ошибка не отображается. Но тогда я убираю эту строку, как я могу получить значение без модели.

1 Ответ

0 голосов
/ 13 июня 2019

Я получил решение.

Проблема в том, что я не передал значение модели, а просто передал переменную данных хранилища из контроллера для просмотра.

Вот мой код решения.

var model = new VendorDetailModel();
var vendor = _vendorService.GetVendorById(vendorId);
model.Name = vendor.Name;
return View(model);

и просмотр страницы такой же, как и предыдущий

...