Asp.net mvc 3 ViewModel属性作为模型的MVC3局部视图
我试图将ViewModel属性传递给局部视图,但出现以下错误: 传递到字典中的模型项的类型为“f_uAnonymousType2`1[DomanyLine.Models.DomaniData.TempRates]”,但此字典需要“DomanyLine.Models.DomaniData.TempRates”类型的模型项 如何传递VM属性,使其不是匿名类型 观点:Asp.net mvc 3 ViewModel属性作为模型的MVC3局部视图,asp.net-mvc-3,Asp.net Mvc 3,我试图将ViewModel属性传递给局部视图,但出现以下错误: 传递到字典中的模型项的类型为“f_uAnonymousType2`1[DomanyLine.Models.DomaniData.TempRates]”,但此字典需要“DomanyLine.Models.DomaniData.TempRates”类型的模型项 如何传递VM属性,使其不是匿名类型 观点: @model DomaniOnline.Models.ViewModels.CompareRatesViewModel @{ Vie
@model DomaniOnline.Models.ViewModels.CompareRatesViewModel
@{
ViewBag.Title = "Rate Comparison";
}
<h2>Compare Rates</h2>
<table>
<tr>
<td>@Html.DisplayTextFor(m=>m.TempRate1.CarrierName)</td>
<td>@Html.DisplayTextFor(m=>m.TempRate2.CarrierName)</td>
<td>@Html.DisplayTextFor(m=>m.TempRate3.CarrierName)</td>
<td>@Html.DisplayTextFor(m=>m.TempRate4.CarrierName)</td>
</tr>
<tr>
<td>@Html.Partial("_TempRatesPartial", new { tempRate = Model.TempRate1 })</td>
<td>@Html.Partial("_TempRatesPartial", new { tempRate = Model.TempRate2 })</td>
<td>@Html.Partial("_TempRatesPartial", new { tempRate = Model.TempRate3 })</td>
<td>@Html.Partial("_TempRatesPartial", new { tempRate = Model.TempRate4 })</td>
</tr>
</table>
@model.line.Models.ViewModels.comparatesviewmodel
@{
ViewBag.Title=“费率比较”;
}
比较价格
@DisplayTextFor(m=>m.TempRate1.CarrierName)
@DisplayTextFor(m=>m.TempRate2.CarrierName)
@DisplayTextFor(m=>m.TempRate3.CarrierName)
@DisplayTextFor(m=>m.TempRate4.CarrierName)
@Html.Partial(“_TempRatesPartial”,新的{tempRate=Model.TempRate1})
@Html.Partial(“_TempRatesPartial”,新的{tempRate=Model.TempRate2})
@Html.Partial(“_TempRatesPartial”,新的{tempRate=Model.TempRate3})
@Html.Partial(“_TempRatesPartial”,新的{tempRate=Model.TempRate4})
部分观点:
@model DomaniOnline.Models.DomaniData.TempRates
<fieldset>
<legend>TempRates</legend>
<div class="display-label">Carrier Name</div>
<div class="display-field">
@Html.DisplayFor(model => model.CarrierName)
</div>
....
</fieldset>
@model.line.Models.DomaniData.TempRates
临时演员
承运人名称
@DisplayFor(model=>model.CarrierName)
....
以及ViewModel:
public class CompareRatesViewModel
{
public TempRates TempRate1 { get; set; }
public TempRates TempRate2 { get; set; }
public TempRates TempRate3 { get; set; }
public TempRates TempRate4 { get; set; }
public TempRates TempRate5 { get; set; }
public CompareRatesViewModel(IEnumerable<TempRates> TempRateList)
{
this.TempRate1 = TempRateList[0];
this.TempRate2 = TempRateList[1];
this.TempRate3 = TempRateList[2];
this.TempRate4 = TempRateList[3];
this.TempRate5 = TempRateList[4];
}
}
公共类比较视图模型
{
公共TempRates TempRate1{get;set;}
公共TempRates TempRate2{get;set;}
公共临时速率临时速率3{get;set;}
公共临时速率临时速率4{get;set;}
公共TempRates TempRate5{get;set;}
公共比较视图模型(IEnumerable TempRateList)
{
this.TempRate1=TempRateList[0];
this.TempRate2=TempRateList[1];
this.TempRate3=TempRateList[2];
this.TempRate4=TempRateList[3];
this.TempRate5=TempRateList[4];
}
}
您需要将匿名类型转换为部分视图的模型类型:
@Html.Partial("_TempRatesPartial", (DomaniOnline.Models.DomaniData.TempRates)Model.TempRate1)
为什么不直接传入对象而不是使用匿名类型? 你的部分使用TempRates,你的TempRate1是TempRates类型,所以你应该可以不用施法就能做到这一点
<td>@Html.Partial("_TempRatesPartial", Model.TempRate1)</td>
@Html.Partial(“\u TempRatesPartial”,Model.TempRate1)