视图映射错误的ViewModel

时间:2018-11-15 16:35:26

标签: c# asp.net-mvc

编辑:我还没有找到解决问题的方法,但我认为到现在为止我并没有错,但是至少某种程度上VS还是在困扰我。

因此,我从头开始创建了一个新项目(因为这是一个小项目,只是为了锻炼,并且从一开始就完成了所有工作。现在它可以正常工作:),所以我对此没有具体的解决方案,我尝试了您给我的一切,谢谢您的时间:)

所以我有2个简单的控制器和2个视图。我也有两个单独的ViewModel。

当我尝试加载Index.cshtml时,会发生此错误:

  

传递到字典中的模型项的类型为“ Vidly.ViewModels.CustomerViewModel”,但是此字典需要模型项的类型为“ Vidly.ViewModels.RandomMovieViewModel”。

这是我的视图模型。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Vidly.Models;

namespace Vidly.ViewModels
{
    public class CustomerViewModel
    {
        public List<Customer> Customers { get; set; }
    }
}

这是我的观点:

@model Vidly.ViewModels.CustomerViewModel
@{
    ViewBag.Title = "Index";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<h2>Index</h2>

还有一个控制器:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Vidly.Models;
using Vidly.ViewModels;

namespace Vidly.Controllers
{
    public class CustomersController : Controller
    {
        // GET: Customers

        public ActionResult Index()
        {
            var customers = new List<Customer>
            {
                new Customer {Id = 1, Name = "Willy Wonka"},
                new Customer {Id= 2 , Name = "Walter White"}
            };


            var viewModel = new CustomerViewModel
            {
                Customers = customers
            };

            return View(viewModel);
        }
    }
}

但是,我找不到为什么要加载此模型:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Vidly.Models;

namespace Vidly.ViewModels
{
    public class RandomMovieViewModel
    {
        public Movie Movie { get; set; }
    }
}

1 个答案:

答案 0 :(得分:0)

查看文件的名称是什么?我认为它加载了错误的观点。您的动作名称为Index,因此视图文件必须为Index.cshtml在名为Customers的文件夹中。