我继承了一个asp.net webform应用程序。现在,当我尝试添加新功能时。我点击了以下停止:
我创建了一个表单来从最终用户获取数据,数据进入数据库中的两个表。
我使用Entity Framework来处理与数据库的通信。
我的问题是,因为表单数据需要进入两个模型(两个表),我可以将一个模型绑定到表单数据的一部分吗?或者没有办法做到这一点,我必须浏览每个表单数据并将它们分配给模型属性?
例如数据模型
class ModelA{
public int ModelAID {get;set;}
public string ModelAName {get;set;}
}
class ModelB{
public int ModelBID {get;set;}
public string ModelBName{get;set;}
}
前端页面将是
<form>
<input name="Aid"/>
<input name="AName"/>
<input name="Bid"/>
<input name="BName"/>
</form>
代码背后会是
你用的是哪种版本?我正在开发网络表单4.5,我遇到了类似的问题。
简短的回答是......有点困难,但你可以通过一些限制来做到这一点。
对于数据绑定,我不确定你的意思..如果你只想带数据,或者你想要更新和删除数据。
对我来说,我在任何地方使用gridview来显示数据,也可以更新,删除它,根据我的经验,可以对一个表进行更新和删除。
但您可以通过在ItemTemplate中显示其他表来显示其数据。
以下是我所做的一个简短示例:
<asp:GridView runat="server" ItemType="model"
ID="someGrid" SelectMethod="someGrid_GetData" CellPadding ="10"
autoGenerateColumns="false" deleteMethod="someGrid_DeleteItem"
updateMethod="someGrid_UpdateItem" DataKeyNames="id"
AutoGenerateDeleteButton="true" AutoGenerateEditButton="true">
<Columns>
<asp:DynamicField DataField="col1" />
<asp:BoundField DataField="col2" HeaderText="col2" />
<asp:TemplateField HeaderText="details">
<ItemTemplate>
<asp:HyperLink ID="detailLink" runat="server" Text="details" NavigateUrl='<%# "~/someDetails?some=" + Eval("someDetails") %>'></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="vendor">
<ItemTemplate>
<asp:Label ID="vendorLbl" runat="server"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
如您所见,您可以更新,删除模型表中的数据,但您也可以将数据作为标签从供应商中放入供应商。
我花了很多时间搞清楚这一点。希望这会有所帮助!