2
我正在使用Asp.net 4.5模型绑定。我有一个dropdownlist,它有一个select方法返回一个IEnumerable产品列表。一切都按预期工作。然而,当我降落在页面上,我需要检查查询字符串,并使用SelectMethod改变下拉列表的的SelectedValue(这是必然。Asp.net 4.5 WebForms ModelBinding不允许在dropdownlist上设置selectedvalue
通常我会简单地使用...
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ddlProducts.SelectedValue = Request.QueryString["productid"];
}
}
那但是,当下拉列表绑定到SelectMethod(新的asp.net 4.5模型绑定)时不起作用。那么如何在页面上登陆时通过查询字符串设置下拉列表的selectedvalue?
ASPX(正常下拉列表但使用SelectMethod):
<asp:DropDownList ID="ddlProducts" runat="server" DataTextField="Description" DataValueField="ProductId" AppendDataBoundItems="True" SelectMethod="GetProducts"></asp:DropDownList>
CS
public static IEnumerable<Product> GetProducts()
{
using (var db = new AppDb())
{
return db.Products.OrderBy(x => x.Description).ToList().AsEnumerable();
}
}