У меня проблемы с отображением записей в моем представлении при передаче пользовательских данных пользовательскому элементу управления.
Это очевидно только для объектов linq to sql, где я использую объединения таблиц.
Исключение, которое я получаю: «Невозможно привести объект типа» <> f__AnonymousType4 10[System.String,System.Int32,System.Nullable
1 [System.DateTime], System.String, System.String, System.String, System.String, System.String, System .Nullable 1[System.Single],System.Nullable
1 [System.Double]] 'для ввода App.Models.table1. "
Я искал решение этой проблемы, но не слишком хорошо знаком с тем, что здесь не так для меня, чтобы найти правильный предмет. Это должно работать в теории, и это работает для извлечения одной таблицы, но когда я добавил соединение в их, я столкнулся с проблемами. В настоящее время я использую оператор foreach для запроса моих данных через объявление одной таблицы. Любая помощь будет принята с благодарностью. Заранее спасибо.
Моя текущая настройка:
CViewDataUC.cs (мой класс для хранения viewdata и подключений к данным специально для пользовательских элементов управления)
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 (контроллер)
public ActionResult Information(int id)
{
ViewData["Title"] = "Information";
CViewDataUC o_info = new CViewDataUC();
o_info.Info(this.ViewData, id);
return View();
}
Information.aspx (Просмотр)
<%@ 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 (контроль пользователя)
<%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>
<%}%>