即使我明确更改了视图,视图也总是期望使用相同的模型

时间:2018-10-26 14:49:25

标签: asp.net asp.net-mvc-5

我刚刚开始学习Asp.net MVC5。我的视图始终期望以一个类(RandomMovieViewModel)作为模型,即使在创建新视图并将其明确声明为(CustomerMemeberViewModel)之后,它仍然期望RandomMovieViewModel

我的两个viewmodels是:

public class RandomMovieViewModel
{
    public Movies Movie { get; set; }
    public Customer Customers { get; set; }
    public List<Customer> CustomersList { get; set; }
    public List<Movies> MoviesList { get; set; }
}

public class CustomerMemberViewModel
{
    public IEnumerable<MemberShipType> MembershipType { get; set; }
    public Customer Customers { get; set; }
}

这是我的一个简单视图,即使删除并重新创建它后,它也无法正确viewmodel

@model VidlySecond.ViewModels.CustomerMemberViewModel
@{
    ViewBag.Title = "New";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>New Customer c</h2>

以下是查看操作:

[Route("customer/new")]
public ActionResult New()
{
    IEnumerable<MemberShipType> membershiptypes = _context.MembershipTypes.ToList();
    CustomerMemberViewModel viewmodel = new CustomerMemberViewModel
    {
        MembershipType = membershiptypes
    };
    return View(viewmodel);
}

这是我的客户类别:

public class Customer
{
    public int Id { get; set; }
    [Required]
    [StringLength(225)]
    public string Name { get; set; }
    public bool IsSubscribedTonewletter { get; set; }
    [Required]
    public MemberShipType MemberShipTypeOfCustomer { get; set; }
    public byte MemberShipTypeId { get; set; }
    [Display(Name="Date Of Birth")]
    public DateTime? Birthdate { get; set; }
} 

错误:

  

“ /”应用程序中的服务器错误。

     

说明

     

在执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪,以获取有关错误及其在代码中起源的更多信息。

     

异常详细信息

     

传递到词典中的模型项的类型为'VidlySecond.ViewModels.CustomerMemberViewModel',但是此词典需要模型类型为'VidlySecond.ViewModels.RandomMovieViewModel'的模型项

1 个答案:

答案 0 :(得分:0)

假设您正在遵循Mosh Hamedani的练习,那么应该在_layout.cshtml中添加一行。

@model Vidly.ViewModels.RandomMovieViewModel

您可以删除它,希望它能起作用。