当我将数据传递给模型并调用视图时,此错误引发我。
这是完整的错误显示,
在处理请求时发生未处理的异常。 InvalidOperationException:传递到ViewDataDictionary的模型项的类型为'Castle.Proxies.VendorProxy',但是此ViewDataDictionary实例需要模型类型为'System.Collections.Generic.IList`1 [Nop.Web.Models.Common.VendorDetailModel ]”。
现在,我在nopcommerce 4.2中创建一个模型,一个视图和控制器。
这是我的模特儿地点,
Nop.Web =>模型=>通用=> 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 =>视图=>通用=> Vendordetail.cshtml
这是查看代码
@model VendorDetailModel
content.......
因此,当我在视图文件中放置 @model VendorDetailModel 时显示此错误,而如果我删除此行,则不会显示错误。但是我删除了这一行,那么在没有模型的情况下如何获取值。
答案 0 :(得分:-1)
我找到了解决方法。
问题是我没有给模型赋值,只是将存储数据变量从控制器传递给视图。
这是我的解决方案代码。
var model = new VendorDetailModel();
var vendor = _vendorService.GetVendorById(vendorId);
model.Name = vendor.Name;
return View(model);
,并且查看页面与以前的页面相同