MVC3 Razor> Сделать модель IEnumerable, чтобы ее можно было использовать в View? - PullRequest
2 голосов
/ 11 февраля 2011

У меня есть эта модель:

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 следующим образом:

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 Ответ

7 голосов
/ 11 февраля 2011

Вы можете передать свою коллекцию непосредственно в представление.

В представлении вам необходимо объявить тип модели:

@model IEnumerable<CardInfo>
...