Шаблоны DD отстают.
Добавьте это в файл:
using System.Linq;
using System.Web.DynamicData;
using System.Data.Objects;
using System.Data.Objects.DataClasses;
public static class ModeContainer<OC> where OC : ObjectContext
{
private static MetaModel model = new MetaModel();
static ModeContainer() { model.RegisterContext(typeof(OC), new ContextConfiguration() { ScaffoldAllTables = true }); }
public static MetaModel Model { get { return model; } }
public static MetaTable Table<EO>() where EO : EntityObject { return Model.Tables.First(x => x.EntityType == typeof(EO)); }
}
Тогда Global может содержать это:
routes.Add(new DynamicDataRoute("{table}/{action}.aspx")
{
Constraints = new RouteValueDictionary(new { action = "List|Details|Edit|Insert" }),
Model = ModeContainer<ContactsModel.ContactsEntities>.Model
});
И тогда вы можете сделатьтакие вещи, как это на странице, чтобы использовать динамические вне маршрута:
protected void Page_Init(object sender, EventArgs e)
{
MetaTable table = ModeContainer<ContactsModel.ContactsEntities>.Table<Person>();
GridView1.SetMetaTable(table);
}
Вдоль стороны сетки и источника, как это:
<asp:GridView ID="GridView1" runat="server" DataKeyNames="Id" OnSelectedIndexChanged="GridView1_SelectedIndexChanged">
<SelectedRowStyle BackColor="Azure" />
<Columns>
<asp:CommandField ShowDeleteButton="True" ShowEditButton="True" ShowSelectButton="True" />
<asp:DynamicField DataField="Contacts" />
<asp:DynamicField DataField="Addresses" />
</Columns>
</asp:GridView>
<asp:EntityDataSource ID="EntityDataSource1" runat="server" ConnectionString="name=ContactsEntities" DefaultContainerName="ContactsEntities" EntitySetName="People" EnableDelete="True" EnableInsert="True" EnableUpdate="True" EntityTypeFilter="Person">
</asp:EntityDataSource>