微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

处理请求时发生未处理的异常我想按类别列出产品时出现此错误?

如何解决处理请求时发生未处理的异常我想按类别列出产品时出现此错误?

这是我的标记代码

@model ProductDetailModel

<div class="row no-gutters">
    <div class="col-md-3">
        <img src="~/img/@Model.Product.ImageUrl" class="img-fluid">
    </div>
    <div class="col-md-9">
        
        <h1 class="mb-3">@Model.Product.Name</h1><hr>
        @foreach (var item in Model.Catgeories)
        {
            <a href="#" class="btn btn-link p-0 mb-3">@item.Name</a>
        }
        
        <div class="mb-3">
            <h4 class="text-primary mb-3">@Model.Product.Price</h4><i class="fas fa-lira-sign"></i>
        </div>
        <button type="submit" class="btn btn-primary btn-lg">Add to Cart</button>
    </div>
</div>
<div class="row">
    <div class="col-md-12">
        <p class="p-3">@Model.Product.Description</p>
    </div>
</div>

我收到此错误

'Detail.cshtml'
'InvalidOperationException:传递到ViewDataDictionary中的模型项的类型为'shopapp.webui.Models.ProductListviewmodel',但是此ViewDataDictionary实例需要一个类型为'shopapp.webui.Models.ProductDetailModel'的模型项。

解决方法

'InvalidOperationException:传递到ViewDataDictionary中的模型项的类型为'shopapp.webui.Models.ProductListViewModel',但是此ViewDataDictionary实例需要一个类型为'shopapp.webui.Models.ProductDetailModel'的模型项。 >

这意味着您的Details.cshtml需要模型ProductDetailModel,但您传递了模型ProductListViewModel。请确保您的后端代码如下:

public async Task<IActionResult> Details(int? id)
{
    var model= new ProductDetailModel(){....};
    //...
    return View(model);
}
,

“ ShopController” 公共IActionResult列表(字符串类别) {

       var productViewModel=new ProductListViewModel()
        {
            Products=_productService.GetProductsByCategory(category)
        };

        return View(productViewModel);
    }
public IActionResult Details(int? id)
    {
        if(id==null)
        {
            return NotFound();
        }
        Product product = _productService.GetProductDetails((int)id);

        if(product==null)
        {
            return NotFound();
        }
        return View(new ProductDetailModel{
            Product=product,Catgeories=product.ProductCategories.Select(i=>i.Category).ToList()
        });
    }

'ProductDetailModel'

public class ProductDetailModel
{
    public Product Product { get; set; }
    public List<Category> Catgeories { get; set; }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。