Вы не можете передавать анонимные объекты в представления.Это не работает, потому что анонимные типы испускаются как внутренние.А поскольку представления ASP.NET во время выполнения компилируются в отдельную сборку, они не могут получить доступ к этим временам, поскольку они находятся в другой сборке.По сути это означает, что анонимный объект, который вы определили в действии контроллера, не может быть доступен в вашем представлении.
Поэтому, как всегда в приложении ASP.NET MVC, начните с определения представления модели:
public class MyViewModel
{
public Category Category { get; set; }
public Menu Menu { get; set; }
}
, затем действие контроллера заполнит эту модель представления и передаст ее представлению:
public ActionResult Index(int id=-1)
{
var model =
from menu in _db.tbl_interface_menu
join cat in _db.tbl_interface_category
on menu.fld_category_id equals cat.id
where cat.fld_customer_id == id
select new MyViewModel { Category = cat, Menu = menu };
return View(model);
}
и, наконец, строго типизированное представление:
<%@ Page
Language="C#"
MasterPageFile="~/Views/Shared/Site.Master"
Inherits="System.Web.Mvc.ViewPage<IEnumerable<AppName.Models.MyViewModel>>"
%>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<% foreach (var item in Model) { %>
<%= item.Menu.fld_section2_title %>
<% } %>
</asp:Content>