My solution was a combination of above mentioned business layer checking for any model erros and DBUpdateException and then this in the ItemInserted event of the FormView:
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;
}
This seems to work in my app and sort of covers my needs. Seems like from my testing, that if there is a model error it will never get to this event anyway, so it is safe to assume that if the modelState is valid and you've reached the OnInserted event, using EF 5 + Model Binding, your record has successfully been inserted.
We would definitely like to see more elaborate examples on MSDN and documentation on Model Binding in ASP Webforms as the current series of tutorials are very rudamentory to say the least.