SubSonic:覆盖脚手架

时间:2010-10-11 22:16:01

标签: c# asp.net subsonic

有人可以建议我在SubSonic 2中扩展开箱即用的脚手架吗?

当用户单击“保存”按钮(触发btnSave_Click void)时,我想根据刚刚更新的记录执行另一个存储过程。

最好的方法是什么?非常感谢。

1 个答案:

答案 0 :(得分:1)

从我在SubSonic 2源代码中看到的情况来看,当你触发btnSave_Click时,没有其他功能可以按原样调用。

所以你需要修改源代码并重新创建亚音速2 dll(非常简单)。

因此,如果您修改源代码,只需放置一个在保存后运行的函数,然后在您的代码中覆盖此函数。

    /// <summary>
    /// Saves the editor.
    /// </summary>
    private void SaveEditor()
    {
        if(Mode == ScaffoldMode.Edit)
            UpdateRecord(PrimaryKeyControlValue);
        else
            InsertRecord();

        SaveManyToMany();

        AfterTheSave();

        if(ReturnOnSave)
            BuildWithModeChange(ScaffoldMode.List);
    }

    public virtual void AfterTheSave()
    {
    }