编辑一次:发送两个模型到一个视图中的.Net在VB
所以看起来我已经想通了地址部分也是如此,在I类有:
Public ReadOnly Property addresses As IEnumerable(Of Address)
Get
Return _these_addresses
End Get
End Property
而且在模板我:
<% For Each item In Model.addresses%>
<tr>
<td>
<a href='<%: Url.Action("Edit", "Address", New With { .pid=Model.ContactID, .id=item.AddressID }) %>'>
<img src='<%: Url.Content("~/Content/Images/Edit.jpg") %>' alt="Edit" />
</a>
<a href='<%: Url.Action("Details", "Address", New With { .pid=Model.ContactID, .id=item.AddressID }) %>'>
<img src='<%: Url.Content("~/Content/Images/Detail.jpg") %>' alt="Details" />
</a>
<a href='<%: Url.Action("Delete", "Address", New With { .pid=Model.ContactID, .id=item.AddressID }) %>'>
<img src='<%: Url.Content("~/Content/Images/Delete.jpg") %>' alt="Delete" />
</a>
</td>
<td>
<%: item.Street%>
</td>
<td>
<%: item.City%>
</td>
<td>
<%: item.StateID%>
</td>
<td>
<%: item.CountryID%>
</td>
<td>
<%: item.Zip%>
</td>
</tr>
<% Next%>
</table>
再次编辑:
我接触到的类添加该每个字段和它的工作...我只需要弄清楚现在的地址的列表...
Public ReadOnly Property FirstName() As String
Get
Return _this_contact.FirstName
End Get
End Property
编辑:
我大约有它想通了:
我花了瞎猜并提出基于的ContactViewModel以C示例我在研究中发现,关于如何在我的控制器做到这一点
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Web
Imports TotallyAwesomeCRM.Contact
Imports TotallyAwesomeCRM.Address
Public Class ContactViewModel
Public contact As Contact
Public address As Address
Private _this_contact As Contact
Private _these_addresses As System.Linq.IQueryable(Of Address)
Sub New(ByVal this_contact As Contact, ByVal these_addresses As System.Linq.IQueryable(Of Address))
' TODO: Complete member initialization -this was added by the framework for me when I tried to call this class - I don't know what to do here - resources?
_this_contact = this_contact
_these_addresses = these_addresses
End Sub
End Class
所以我:
Function Details(ByVal id As Integer) As ActionResult
Dim this_contact = GetContact(id)
Dim these_addresses =
From address In addressDataContext.Addresses, xref In addressDataContext.ContactAddressesXrefs
Where address.AddressID = xref.AddressID And xref.ContactID = id
Select address
Dim viewModel = New ContactViewModel(this_contact, these_addresses)
Return View(viewModel)
End Function
而且在模板它的联系,当我开始打字Model.contact
<%:Model.contact.FirstName%>
但它给了我有一个错误:的NullReferenceException:未将对象引用设置为一个对象的实例。
它不能为空...请帮我找出TODO
========================== ================================================== ===== ORIGINALPOST:
这是我的第一个.NET创业。到目前为止我所做的一切都已经弄清楚了。
好的我有联系人,联系人可以有很多地址。我想在查看联系人的详细信息时显示这些地址我还想要一个容器,它是其地址的列表视图。从该列表视图中,我希望能够编辑/删除/查看地址。
我的数据库结构为:
表:
Contacts
<contains contact info and PK>
Addresses
<contains address info and PK>
ContactAddressesXref
ContactID
AddressID
我已经基本编辑框架文件的ASP.NET MVC空的应用程序提供了我
因此,这里是最后的事情我在我的联系人控制器中尝试过:
'
' GET: /Contacts/Details/5
Function Details(ByVal id As Integer) As ActionResult
Dim this_contact =
From contact In dataContext.Contacts, address In addressDataContext.Addresses, xref In addressDataContext.ContactAddressesXrefs
Where address.AddressID = xref.AddressID And xref.ContactID = id
Select contact, address
Return (View(this_contact))
End Function
我重新你想要做的是单独查询地址并将它们作为自己的设置发送。我不知道这是否是正确的做法,但是当我试图发送两个模型 它吓坏了。
哪些失败当然是因为认为有这个在它:
<%@ Page Title="" Language="VB" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage(Of IEnumerable (Of TotallyAwesomeCRM.Contact))" %>
我想:
Inherits="System.Web.Mvc.ViewPage(Of IEnumerable (Of TotallyAwesomeCRM.Contact, Of TotallyAwesomeCRM.Address))
它说:
'InitializeCulture' is not a member of 'ASP.views_contacts_details_aspx'.
这样就OK了我试过:
Inherits="System.Web.Mvc.ViewPage"
它抛出和错误的位置:
<div class="display-field"><%: Model.FirstName%></div>
当然,所以我错了控制器?我知道我不能只有System.Web.Mvc.ViewPage(IEnumerable(Of TotallyAwesomeCRM.Contact)),它将不得不接受更多。我尝试使用Model.FirstName部分表示Contact.FirstName,但是当我开始编写Contact时,这并没有出现在下拉列表中。我可以在其他语言中轻松完成这项工作,.Net似乎是一款不同的球类游戏。请帮忙!
请保持像 “VB的Visual Basic 2010的LINQ to SQL” 标记出的称号。只要将它们留在标签中即可。 – 2010-07-11 20:44:42
好吧我的意思是Visual Studio,我并没有试图使它成为可搜索的,我认为那些事情知道能够回答这个问题是重要的,但是,我对.net是全新的,所以可能不会。 – KacieHouser 2010-07-11 20:49:44
让他们在标签中,他们非常可搜索。但它使标题可读。 – 2010-07-12 05:04:19