не знаю, как отобразить данные в представлении (новичок) - PullRequest
1 голос
/ 07 марта 2012

Доброе утро всем.

Я новичок в .Net языках и мне нужен пример, чтобы иметь возможность идти дальше.

Итак, моя цель - отображать даты и комментарии отниже приведены общие сведения о клиенте.

Представление должно выглядеть примерно так:

имя имя: адрес: номер телефона: ...

дата1 comment1

date2 comment2 ...

Было легко автоматически создать строго типизированное представление с общими данными.Теперь я не понимаю, как отобразить комментарии ниже.

Вот то, что я уже сделал в контроллере

    ' GET: /Contacts/Details/5

    Function Details(id As Integer) As ActionResult
        Dim contact As contact = db.contact.Single(Function(c) c.idContact = id)
        Dim listMeet = New List(Of meeting)
        listMeet = (From d In db.meeting
                   Where d.FK_meet_contact = id
                   Select d).ToList()
        ViewBag.listeMeeting = listMeet
        Return View(contact)
    End Function

В представлении, я вижу много неправильных вещей... Давайте покажем вам последнее:

@ModelType MvcApplication4.contact
@Code
    ViewData("Title") = "Details"
    Dim list As List(Of Object) = ViewBag.listeMeeting
    Dim ligne As ListItemCollection

End Code

[...]

<fieldset>
  <legend><button onclick="togglefield('Meet')">Meetings</button></legend>
    <div class="Meet">

     @For Each ligne In ViewBag.listeMeeting
         @Html.Raw(ViewBag.listeMeeting)
     Next (ligne)

    </div>  
</fieldset>

Что я не так понял?

пс: Яя не являюсь носителем английского языка, так что извините, если мой английский отстой

1 Ответ

1 голос
/ 07 марта 2012

Вы можете использовать модель представления вместо ViewBag:

Public Class MyViewModel
    Public Property ContactDetails As Contact
    Public Property Meetings As IEnumerable(Of Meeting)
End Class

, а затем заполните эту модель представления в вашем контроллере и перейдите к представлению для отображения:

Function Details(id As Integer) As ActionResult
    Dim contact As contact = db.contact.Single(Function(c) c.idContact = id)
    Dim meetings =
        (From d In db.meeting
         Where d.FK_meet_contact = id
         Select d).ToList()

    Dim model = New MyViewModel With {
        .ContactDetails = contact,
        .Meetings = meetings
    }
    Return View(model)
End Function

, а затем строго введите тип вашей модели представления:

@ModelType AppName.MyViewModel

<h2>@Model.ContactDetails.SomePropertyOfContact</h2>

<fieldset>
    <legend>
        <button onclick="togglefield('Meet')">Meetings</button>
    </legend>
    <div class="Meet">
        @For Each meeting In Model.Meetings
            @meeting.SomePropertyOfMeeting
        Next
    </div>  
</fieldset>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...