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"
属性。
您至少应该能够在此方法上设置断点。然后你可以看看按钮是否触发了一个事件。
我在 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"
属性。
您至少应该能够在此方法上设置断点。然后你可以看看按钮是否触发了一个事件。