0

私は新しい MVC 3.0 Razor です。LINQ を使用してプロファイルの詳細を取得しています。

私が使用しているコントローラーで

  var q = from m in networks.Entities
                    join o in networks.EntityTypes on m.EntityTypeIdFk 
                    where m.Status == 1
                    orderby m.EntityName
                    select new { m.EntityName,m.EntityDescription,o.EntityTypeName };

            ViewBag.EntitiesName = q.ToList();

使用しているビューで

@foreach (var res in ViewBag.EntitiesName)
    {
        <tr>
            <td>@res.EntityName</td>
            <td>@res.EntityDescription</td>
            <td>@res.EntityTypeName</td>
        </tr>
    }

結果の配列を取得する@res imで。しかし、まだ「タイプのオブジェクトをキャストできません」というエラーが表示されます

これを解決するために私を助けてください。

ありがとう、サローニ

4

2 に答える 2

0
public ActionResult SomeAction()
    {
         //ur linq here
        var model = q.ToList();
        return View(model);
    }

ビューで

@model List<MVCSAMPLE.Models.Entities> 
@foreach (var item in Model)
{
    <tr>
        <td>@item.EntityName</td>
        <td>@item.EntityDescription</td>
        <td>@item.EntityTypeName</td>
        <td>@item.IndustryName</td>
        <td>@item.Name</td>
    </tr>
}

ほんの一例です。ur リストのタイプを指定してみてください。もう 1 つの方法は、モデルとビューで List タイプのプロパティを大きくすることです。

@model List<MVCSAMPLE.Models.MyModel> 
@foreach (var item in Model.PropertyWhithListType)
{
    <tr>
        <td>@item.EntityName</td>
        <td>@item.EntityDescription</td>
        <td>@item.EntityTypeName</td>
        <td>@item.IndustryName</td>
        <td>@item.Name</td>
    </tr>
}
于 2012-10-25T10:59:25.523 に答える
0

を使用して問題を解決しました

select new MVCSAMPLE.Models.Entities 
{ 
    EntityName = m.EntityName, 
    EntityDescription = m.EntityDescription, 
    EntityTypeName = o.EntityTypeName
}

ありがとうございます。

于 2012-10-26T04:16:36.447 に答える