Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 ViewModel属性作为模型的MVC3局部视图_Asp.net Mvc 3 - Fatal编程技术网

Asp.net mvc 3 ViewModel属性作为模型的MVC3局部视图

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

我试图将ViewModel属性传递给局部视图,但出现以下错误: 传递到字典中的模型项的类型为“f_uAnonymousType2`1[DomanyLine.Models.DomaniData.TempRates]”,但此字典需要“DomanyLine.Models.DomaniData.TempRates”类型的模型项

如何传递VM属性,使其不是匿名类型

观点:

@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)