编辑:我还没有找到解决问题的方法,但我认为到现在为止我并没有错,但是至少某种程度上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; }
}
}
答案 0 :(得分:0)
查看文件的名称是什么?我认为它加载了错误的观点。您的动作名称为Index
,因此视图文件必须为Index.cshtml
在名为Customers
的文件夹中。