假设你有类似ASP.NET ASP:DetailsView来显示和编辑数据库中的单个记录.
记录错误案例很简单...您添加验证和验证摘要.当您的更新表单验证失败时,它会自然产生噪音:它会显示验证消息和/或验证摘要.不需要一个代码.
但是,然后,您通过验证,它会完全默默地进行更新.没有任何意义发生任何事情,似乎没有任何默认设置可以在没有代码隐藏的情况下制作成功消息.
但是,即使是代码隐藏也令人困惑.什么事件应该显示成功消息?onItemUpdate,对吧?很好,但是让我们说你做了另一个改变并得到验证错误?您的成功消息仍然存在 如果存在验证错误,我无法找到可靠地关闭现有成功消息的事件.
这应该是web开发101!为什么这么难?
编辑:
有人建议使用ItemCommand事件...我尝试了这个和许多其他事件,但成功消息不会消失.这是一些代码.
我在ASP.NET中的消息
<label id="successMessage" class="successMessage" runat="server"></label>
Run Code Online (Sandbox Code Playgroud)
我的DataView标签(简化):
<asp:DetailsView
Id="EditClient"
DataKeyNames="LicenseID"
DataSourceID="MySource"
runat="server"
OnItemUpdated="SuccessfulClientUpdate"
OnItemCommand="ClearMessages">
Run Code Online (Sandbox Code Playgroud)
而且,我的代码隐藏:
protected void SuccessfulClientUpdate(object sender, DetailsViewUpdatedEventArgs e)
{
successMessage.InnerText = string.Format("Your changes were saved.");
successMessage.Visible = true;
}
protected void ClearMessages(object sender, DetailsViewCommandEventArgs e)
{
successMessage.InnerText = string.Empty;
successMessage.Visible = false;
}
Run Code Online (Sandbox Code Playgroud)
然而,一旦我成功更新,似乎没有任何东西使该消息消失,甚至验证失败.
第二次编辑:
只是想明确我确实尝试将ClearMessages代码放在Page_Load中.但是,当我在第二次更新时遇到验证错误,似乎没有任何东西使successMessage标签消失.有人可以建议任何其他疑难解答提示
我发现了这些问题,但其中有几个有点老了:
/sf/ask/13408951/ 您认为ASP.NET MVC会与ASP.NET Webforms竞争吗? ASP.NET MVC> ASP.NET WebForms,为什么?
我不相信这些是重复的,并且可能已经足够大,以至于可以消除新的光.如果不是,请关闭它.
我知道没有一个框架或语言是每个工作的唯一工具.但是,你是否看到MVC使eclipsing webforms或webforms在微软的优先级列表中走得更低?他们将不得不长时间保持webforms,因为有很多人投入了它,但他们不必继续为它添加新的功能.
我不知道这是一个很好的例子,但它让我想起了网页部分.我从未在微软看到太多改进.它起作用,我认为它很棒,直到我开始真正尝试并从中获得很多.然后从我可以看到它只是微软没有那么多,虽然它留在Visual Studio中.也许那是一个坏榜样; 就是我记得的.
编辑:此外,如果任何人有任何关于此主题的微软声明,我们表示赞赏.对任何人都没有冒犯.我只是希望有一些官方的东西.