c# - AffectedRows 在 FormView 的 ItemInserted 中总是 -1

标签 c# asp.net webforms model-binding asp.net-4.5

我有一个使用模型绑定(bind)的 ASP.NET 4.5 Web 表单应用程序。我已经按照本教程创建了一个业务逻辑层:http://www.asp.net/web-forms/tutorials/data-access/model-binding/adding-business-logic-layer

因此我的 FormView 的 InsertMethod 位于适当的 BLL 类中。 BLL 类在我的代码隐藏的 OnCallingDataMethods 方法中按照上面的示例定义。 然而,OnItemInserted 方法,我已经直接在我的页面的代码隐藏类中定义,因为我觉得它不是每个人所说的业务逻辑,而是前端类型逻辑,用于根据已完成的插入向用户提供反馈。

我的问题是无论 Insert 的结果如何,OnItemsInserted 方法中的 AffectedRows 属性始终为 -1。所以我永远无法根据这个 MSDN 示例验证插入是否成功:http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.formview.iteminserted.aspx

当使用 ASP.Net 4.5 Web Forms 模型绑定(bind)的新模型绑定(bind)技术时,AffectedRows 属性是否错误或未填充到 FormViewInsertedEventArgs 集合中?还是我做错了什么?

最佳答案

我的解决方案是结合上面提到的业务层检查任何模型错误和 DBUpdateException,然后在 FormView 的 ItemInserted 事件中:

protected void personForm_ItemInserted(object sender, FormViewInsertedEventArgs e)
    {
        if (this.ModelState.IsValid)
        {
            labResponse.Text = "New record added. Woohoo!";
        }
        else
        {
            labResponse.Text = "";
        }
        personForm.DefaultMode = FormViewMode.Insert;
    }

这似乎适用于我的应用程序并且可以满足我的需求。从我的测试来看,如果存在模型错误,它永远不会到达此事件,因此可以安全地假设如果 modelState 有效并且您已经到达 OnInserted 事件,使用 EF 5 + 模型绑定(bind),您的记录已成功插入。

我们肯定希望在 MSDN 上看到更多详尽的示例,并在 ASP Webforms 中看到有关模型绑定(bind)的文档,因为至少可以说当前系列教程非常初级。

关于c# - AffectedRows 在 FormView 的 ItemInserted 中总是 -1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18876451/

相关文章:

c# - 如何在 ASP 中测试 AccountController?

c# - 当 GridView 的单元格内的按钮调用时,模态面板不会出现

asp.net - 是否可以优化ASP.NET WebForms以使其执行速度与ASP.NET MVC一样快?

asp.net-mvc - MapPageRoute 破坏集成 MVC/WebForms 应用程序中的 ActionLinks

c# - 用 .NET 编写的 OSS Twitter 克隆

c# - 如何在 C# 中使用 Bogus 库生成字符串列表?

javascript - ASP.NET - 使用 Javascript 在 LinkBut​​ton 上编辑 CommandName

asp.net - Hangfire 如何处理应用程序域重启?

c# - 如何让本地组中的所有用户(性能良好)

c# - 访问被拒绝冒充当前用户访问网络文件夹