使用DyanamicData,我有一个标准的“多对多”表,在插入新的唯一行时工作得很好。两个父表的下拉列表都应显示,并正确插入行。
但是,在一个表上,我有一个唯一索引,它会抛出一个我可以在OnInserted事件处理程序中捕获的异常。然后,我可以向用户发回一条友好的友好消息,告知他们问题所在。出现此问题的原因是DetailsView丢失了视图状态,并且用户为DropDownLists选择的值将重置为页面的默认值。
protected void DetailsDataSource_Inserted(object sender, LinqDataSourceStatusEventArgs e)
{
if (e.Exception != null && !e.ExceptionHandled)
{
msgPanel.Text = "Error Occurred"; // or some other friendly message
e.ExceptionHandled = true;
// e.Result == null, so I can't rebuild the user's input from here.
// What can be put where to get the user's input restored?
}
}
答案 0 :(得分:0)
我倾向于将错误包装在模型中的Validation异常中,这会导致验证错误,并且应该保持用户输入不变。
史蒂夫