WebForms 模型绑定插入停止工作

WebForms model binding insert stopped working

我在 EF6 代码优先项目上使用 webforms 模型绑定。我有一个运行良好的页面。它没有明显的原因停止工作。不再调用插入方法。我有另一个插入页,它仍然可以正常工作。有人知道会导致这种情况的任何事情吗?

这是它使用的一些标记。

 <asp:FormView runat="server" ID="fvTour"
        ItemType="CommonInterface.Tour" DefaultMode="Insert"
        InsertItemPosition="FirstItem" InsertMethod="InsertItem"
        OnItemCommand="ItemCommand" RenderOuterTable="false">

代码隐藏

public void InsertItem()
    {
        using (_db)
        {
            FileUpload picUpload = (FileUpload)fvTour.FindControl("fuploadTour");
            if (picUpload == null || !picUpload.HasFile) return;

            var item = new CommonInterface.Tour();

            item.MemberID = (int)Session["MemberID"];
            item.FID = LoginBLL.GetFID(item.MemberID);
            item.TourSubmitDate = DateTime.Now;
            item.PID = null;
            item.TourState = ((DropDownList)fvTour.FindControl("ddlState")).SelectedItem.Text;
            item.TourCounty = ((DropDownList)fvTour.FindControl("ddlCounties")).SelectedItem.Text;
            item.TourLayout = ((DropDownList)fvTour.FindControl("ddlLayout")).SelectedItem.Text;
            item.TourType = ((DropDownList)fvTour.FindControl("ddlType")).SelectedItem.Text;



            TryUpdateModel(item);

            if (ModelState.IsValid)
            {
                // Save changes
                _db.Tours.Add(item);
                _db.SaveChanges();

                Response.Redirect("Default");
            }
        }
    }

编辑 2: 尝试使用 OnItemCommand 看看是否有效。将 OnItemCommand="ItemCommand" 设置回您的标记并在后面的代码中尝试以下操作:

public void ItemCommand(object sender, FormViewCommandEventArgs e)
{
    if (e.CommandName == "Insert")
    {
        InsertItem();
    }
}

确保您按下的按钮设置了 CommandName="Insert" 属性。 您至少应该能够在此方法上设置断点。然后你可以看看按钮是否触发了一个事件。