【问题标题】:don't know how to display data into the view (beginner)不知道如何在视图中显示数据(初学者)
【发布时间】:2012-03-07 09:12:33
【问题描述】:

大家早上好。

我是 .Net 语言的初学者,需要一个示例才能更进一步。

所以,我的目标是在客户的一般信息下方显示数据表中的日期和 cmets。

视图需要变成这样:

名字名: 地址: 电话号码 : ...

日期1 评论1

日期2 评论2 ...

使用一般数据自动生成强类型视图很容易。现在,我不明白如何显示下面的 cmets。

这是我已经在控制器中完成的操作

    ' 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>

我还有什么不明白的?

ps:我的母语不是英语,所以,如果我的英语很烂,请见谅

【问题讨论】:

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


    【解决方案1】:

    您可以使用视图模型代替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>
    

    【讨论】:

    • 非常非常好的答案...它是 100% 的功能。这完全是我所需要的。
    猜你喜欢
    • 2014-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-18
    • 2020-08-18
    相关资源
    最近更新 更多