我在我的应用中使用标准的ASP.NET WebForms验证控件。我刚刚注意到,在某些时候,客户端验证似乎已经停止了工作。网页在短时间内正确显示红色的错误,但仍会导致不必要的回发,从而导致更改丢失。
这是一个.net 4.5项目。
我有以下appSetting:
<add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
此外,在提交按钮上将causeValidation设置为true,并且ValidationGroup已在按钮和验证器等上设置为正确的值。
答案 0 :(得分:0)
要回答我自己的问题,那是因为我覆盖了标签的渲染方法(因为我使用了URL重写)并且作为副作用,它没有渲染onclick通常呈现为服务器端的属性。
相反,我改变了我的习惯&#34; ActionlessForm&#34;控制使用以下代码:
public class Form : System.Web.UI.HtmlControls.HtmlForm
{
/// <summary>
/// The RenderAttributes method adds the attributes to the rendered <form> tag.
/// We override this method so that the action attribute is not emitted.
/// </summary>
protected override void RenderAttributes(HtmlTextWriter writer)
{
// You cannot simply remove the form action as it seems to get rendered anyway
// but if you set it to the RawURL it will be the correct value on URL rewritten pages.
base.Attributes["action"] = HttpContext.Current.Request.RawUrl;
base.RenderAttributes(writer);
}
}