Je rencontre des problèmes lors de l'affichage des enregistrements dans ma vue lors du passage de viewdata à un contrôle utilisateur. Cela n'est apparent que pour les objets linq to sql où j'utilise des jointures de table.MVC LINQ to SQL Affichage de jointure de table SQL
L'exception est que je reçois « Impossible de coulée objet de type" <> f__AnonymousType4 10[System.String,System.Int32,System.Nullable
1 [System.DateTime], System.String, System.String, System.String, System.String, System.String, système. Nullable 1[System.Single],System.Nullable
1 [System.Double]] 'pour taper App.Models.table1. "
J'ai cherché une solution à ce problème, mais pas trop familier sur ce qui est mal ici pour moi de chercher le bon sujet. Cela devrait fonctionner en théorie et cela fonctionne pour la récupération de table unique mais quand j'ai ajouté une jointure dans leur, j'ai rencontré des problèmes. J'utilise actuellement une instruction foreach pour interroger mes données via une déclaration de table unique. Toute aide serait grandement appréciée. Merci d'avance.
Ma configuration actuelle est:
CViewDataUC.cs (ma classe pour maintenir les connexions de données vidéotex et spécifiquement pour les contrôles utilisateur)
public void Info(ViewDataDictionary viewData, int id)
{
var dataContext = new testDataContext();
var info = from table1 in dataContext.table1
join table2 in dataContext.table2 on table1.type_id equals table2.type_id
join table3 in dataContext.table3 on table1.id equals table3.id
join table4 in dataContext.table4 on table1.id equals table4.id
where table1.id == id
select new
{
table1.column1,
table1.column2,
table1.column3,
table1.column4,
table1.column5,
table1.column6,
table1.column7,
table2.column1,
table3.column1,
table4.column1
};
viewData["vd_Info"] = info;
}
HomeController.cs (contrôleur)
public ActionResult Information(int id)
{
ViewData["Title"] = "Information";
CViewDataUC o_info = new CViewDataUC();
o_info.Info(this.ViewData, id);
return View();
}
Information.aspx (View)
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" AutoEventWireup="true"
CodeBehind="Info.aspx.cs" Inherits="App.Views.Info" %>
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
<%Html.RenderPartial("~/Views/UserControls/Info.ascx", ViewData["vd_Info"]);%>
</asp:Content>
Info.ascx (Contrôle utilisateur)
<%foreach (table1 m in (IEnumerable)ViewData.Model)
{ %>
<div class="left">
<br />
<br />
<p id="medium">
Column 1
<br />
<%= Html.TextBox("column1", m.column1, new {@class = "textBox", @readonly = "readonly" })%>
Column 1
<br />
<%= Html.TextBox("column2", m.column2, new {@class = "textBox", @readonly = "readonly" })%>
<br />
Column 1
<br />
<%= Html.TextBox("column3", m.column3, new {@class = "textBox", @readonly = "readonly" })%>
</p>
</div>
<%}%>