我目前正在测试 ASP.NET 4.5 中的模型绑定。
我正在测试一个表单视图,它接受来自用户的数据,并在成功保存后在下面的 GridView 中显示数据列表。当数据保存到列表时,gridview 保持为空。
我通过使用 ObjectDataSource 尝试了这个示例,并且在保存表单数据时,在回发之后,网格视图显示了列表中的所有项目,它工作正常。
在使用模型绑定时,我是否正在做一些阻止获得所需行为的事情?如果是这样,获得所需行为的正确方法是什么?
formview 和 Grid 视图的 ASP.NET 标记
<asp:FormView ID="FormView1" runat="server" DefaultMode="Insert" ItemType="WebApplication35.Person" InsertMethod="SavePerson" SelectMethod="GetPeople">
<HeaderTemplate>
<asp:ValidationSummary ID="ValidationSummary1" runat="server" />
</HeaderTemplate>
<InsertItemTemplate>
FirstName:
<asp:TextBox ID="FirstNameTextBox" runat="server" Text='<%# BindItem.FirstName %>' />
<br />
LastName:
<asp:TextBox ID="LastNameTextBox" runat="server" Text='<%# BindItem.LastName %>' />
<br />
Age:
<asp:TextBox ID="AgeTextBox" runat="server" Text='<%# BindItem.Age %>' />
<br />
<asp:LinkButton ID="InsertButton" runat="server" CausesValidation="True" CommandName="Insert" Text="Insert" />
<asp:LinkButton ID="InsertCancelButton" runat="server" CausesValidation="False" CommandName="Cancel" Text="Cancel" />
</InsertItemTemplate>
</asp:FormView>
<asp:GridView ID="GridView1" runat="server" ItemType="WebApplication35.Person" SelectMethod="GetPeople" PageSize="2">
</asp:GridView>
背后的代码
public partial class WebForm1 : System.Web.UI.Page
{
private static List<Person> people = new List<Person>();
public IEnumerable<Person> GetPeople()
{
return people;
}
public void SavePerson(Person person)
{
people.Add(person);
}
}
人物类
public class Person
{
[Required]
public string FirstName { get; set; }
[Required]
public string LastName { get; set; }
[Required]
public int Age { get; set; }
}