MVC3剃刀>使模型IEnumerable,所以它可以在View中使用?

时间:2011-02-11 15:05:23

标签: asp.net-mvc-3 ienumerable razor

我有这个型号:

namespace easyBooking.Models
{
    public class CardInfo
    {
        public string name { get; set; }
        public string adress { get; set; }
        public string zipcode { get; set; }
        public string city { get; set; }
        public string ccsID { get; set; }
        public string birthday { get; set; }
        public string nationalitet { get; set; }
        public string cardType { get; set; }
    }
}

我从一个函数填充并返回到控制器。问题是我无法将此模型交给我的视图,因为它没有实现IEnumerable ...相反,我必须像viewBag一样向viewBag添加信息:

var cardInfo = FunctionLib.cardCampingPas(myArray);
                        ViewData.Add("name", cardInfo.name);
                        ViewData.Add("adress", cardInfo.adress);
                        ViewData.Add("nationalitet", cardInfo.nationalitet);
                        ViewData.Add("ccsID", cardInfo.ccsID);
                        ViewData.Add("zipcode", cardInfo.zipcode);
                        ViewData.Add("city", cardInfo.city);
                        ViewData.Add("cardType", cardInfo.cardType);
                        return View("../Reservation/New", ViewData);

这是一种愚蠢的,当我应该只能将cardInfo模型直接添加到View。

    var cardInfo = FunctionLib.cardCampingPas(myArray);
    return View("../Reservation/New", cardInfo);

所以基本上我只需要将一堆字符串传递给视图。如何从我的视角直接访问我的模型CardInfo?

更新

@rene - 查看我添加@model声明的数据。我最后一次尝试时确实遇到了一些错误,但它一定是因为我试图foreach它或者其他东西......现在......只是没有错误,我不知道是否有任何东西传递到视图或者如何获取数据。

@model easyBooking.Models.CardInfo
@{
    ViewBag.Title = "New";
}
<h2>Ny reservation</h2>
<p>Benyttet kort: @Model.cardType</p>

这现在有效......

1 个答案:

答案 0 :(得分:7)

您可以将收藏品直接传递给视图。

在视图中,您需要声明模型类型:

@model IEnumerable<CardInfo>