'Model'与声明'System.Web.Mvc.WebViewPage <tmodel> .Model </tmodel>冲突

时间:2013-06-01 14:07:14

标签: c# asp.net-mvc razor

我有一个显示以下客户对象的视图。

public Class Customer
{
    public long Id { get; set; }
    public string Name { get; set; }
    public Address AddressInfo { get; set; }
}

public class Address 
{
    public string Details { get; set; }
    public City CityInfo { get; set; }
    public Region RegionInfo { get; set; }
}

让控制器将客户退回到

public ActionResult GetCustomer(long Id)
{
    return View("Customer",GetCustomer(Id));
}

最后是View Is,

[Customer.cshtml]
@model Customer;
Name: @Model.Name
Address Details: @Html.Partial("Address",Model)

[Address.cshtml]
@model Customer;
@Model.CityInfo.Name, @Model.RegionInfo.Name

一切似乎都很好。但我得到“'模型'与@ Html.Partial(”地址“,模型)上的声明'System.Web.Mvc.WebViewPage.Model'错误冲突我之前在许多项目中都做过同样的事情并没有得到问题

我不知道进一步的行动。

有人可以帮我解决这个问题。

我看过很多关于这种错误的帖子。但那些不是@ Html.Partial()。

谢谢&amp;的问候,

Saravanakumar R。

2 个答案:

答案 0 :(得分:34)

我已经解决了这个问题..感谢观众。

问题出在我的视图中我正在使用 Model =&gt;模型即可。它应该是 model =&gt;模型

答案 1 :(得分:0)

Model类型为Customer,而不是类型Address。您需要将Address.cshtml中的模型类型更改为Address,并将调用更改为部分以传递AddressInfo属性:

@Html.Partial("Address", Model.AddressInfo)

您的观看代码变为:

[Customer.cshtml]
@model Customer;
Name: @Model.Name
Address Details: @Html.Partial("Address",Model.AddressInfo)

[Address.cshtml]
@model Address;
@Model.CityInfo.Name, @Model.RegionInfo.Name