gpt4 book ai didi

webforms - ASP NET 4.5 Web 窗体模型绑定(bind)不适用于 DropDownList

转载 作者:行者123 更新时间:2023-12-03 03:24:58 28 4
gpt4 key购买 nike

我尝试使用 ASPNET 4.5 Webforms 中的新 ModelBinding 功能,但没有成功。

由于某种原因,提交表单后 Contact.ContactType 仍为 null。

型号:

public class Contact
{
public int ContactId { set; get; }
public string Name { set; get; }
public string Phone { set; get; }

public ContactType ContactType { set; get; }
}

public class ContactType
{
public int ContactTypeId { set; get; }
public string Description { set; get; }

public virtual ICollection<Contact> Contacts { set; get; }
}

ASPX:

<asp:FormView ID="FormView1" runat="server"
ItemType="Models.Contact" DataKeyNames="ContactId"
DefaultMode="Insert" InsertMethod="InsertContact" >
<InsertItemTemplate>
<ul>
<li>
<label>Name</label>
<asp:DynamicControl runat="server" id="Name" DataField="Name" Mode="Insert" />
</li>
<li>
<label>Phone</label>
<asp:DynamicControl runat="server" id="Phone" DataField="Phone" Mode="Insert" />
</li>
<li>
<label>Contact Type</label>
<asp:DropDownList ID="ContactType" runat="server" AppendDataBoundItems="true"
ItemType="Models.ContactType" SelectMethod="GetContactTypes"
DataTextField="Description" DataValueField="ContactTypeId">
<asp:ListItem Value="0" Text="Select"></asp:ListItem>
</asp:DropDownList>
</li>
<li>
<asp:LinkButton ID="LinkButton1" runat="server"
CommandName="Insert" Text="Insert" >

</asp:LinkButton>
</li>
</ul>
</InsertItemTemplate>
</asp:FormView>

ASPX.CS:

public void InsertContact(Contact contact)
{
if (ModelState.IsValid)
{
// Save changes here
}
}

如何成功在下拉列表/列表框中使用 ModelBinding?

最佳答案

您可以在 getcontacttypes 中返回一个字典,然后使用:

    <asp:DropDownList ID="ContactType" runat="server" AppendDataBoundItems="true"
SelectMethod="GetContactTypes"
DataTextField="Value" DataValueField="Key"
SelectedValue="<%# BindItem.ContactTypeId%>"
>
<asp:ListItem Value="0" Text="Select"></asp:ListItem>
</asp:DropDownList>

SelectedValue="<%# BindItem.ContactTypeId%>"很重要

关于webforms - ASP NET 4.5 Web 窗体模型绑定(bind)不适用于 DropDownList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13406223/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com