C#: Как исправить ошибку несоответствия модели: экземпляру ViewDataDictionary требуется элемент модели типа? - PullRequest
1 голос
/ 31 марта 2020

Как я могу исправить ошибку несоответствия моделей? Я получаю эту ошибку исключения An unhandled exception occurred while processing the request. ViewDataDictionary instance requires a model item of type.

У меня есть три действия для страниц «Индекс», «Подробно» и «Редактировать» в моем контроллере, когда я перехожу от страницы «Редактирование к странице« Деталь »и« Индекс до детали »», я получаю ошибку несоответствия модели. Нужна ваша помощь в том, как исправить или отобразить между ними.

Task<IList<VW_ProductDTO>> GetProducts();
Task<ProductDTO> GetProductsbyId(int id);

У меня отображается как:

 CreateMap<Product, ProductDTO>();       
 CreateMap<VW_Product, VW_ProductDTO>();
 CreateMap<ProductDTO, Product>()

И в моем контроллере у меня есть следующие действия:

Для Index.cs html: используется VW_ProductDTO

    [HttpGet]
    public async Task<IActionResult> GetProducts([DataSourceRequest] DataSourceRequest request)
    {
        var Products = await ProductService.GetProducts();

        return Json(Products.ToDataSourceResult(request));
    }

Для Detail.cs html

    [HttpGet]
    public async Task<IActionResult> Details(int id)
    {
        var Product = await ProductService.GetProductsbyId(id);
        return View(Product);
    }

Для Edit.cs html

    public async Task<IActionResult> Edit(int id)
    {  
      var Product = await ProductService.GetProductsbyId(id);
       return View(Product);
    }

и, на мой взгляд, иметь ссылку для перехода на страницу сведений

<a asp-controller="Product" asp-action="Details" asp-route-id="@Model.ID">View Product</a>

, когда я нажимаю на ссылку, чтобы просмотреть страницу сведений, я получаю эту ошибку

An Произошло необработанное исключение при обработке запроса. InvalidOperationException: элемент модели, передаваемый в ViewDataDictionary, имеет тип «ProductDTO», но для этого экземпляра ViewDataDictionary требуется элемент модели типа «VW_ProductDTO».

...