在IE10中单击时,aspx Web表单按钮无法返回正确的值

时间:2014-07-26 00:14:11

标签: asp.net

我的代码如下。当我在IE 10中运行它并单击按钮时,Page.Request.Form["button"]将返回按钮的innerText,“添加到购物车”而不是按钮的值,serverControl。但是,它适用于Google Chrome。如何解决这个问题?

using System.Web.UI.WebControls;
using System.Web.UI;

namespace WorkWithControls
{
    public class ButtonCounterServerControl: WebControl
    {
        protected override void RenderContents(HtmlTextWriter output)
        {
            //base.RenderContents(writer);

            int countVal = (int) (Page.Session["server_control_counter"] ?? 0);

            if (Page.IsPostBack  && Page.Request.Form["button"] == "serverControl")
            {
                Page.Session["server_control_counter"] = ++countVal;
                int i = countVal;
            }

            output.RenderBeginTag(HtmlTextWriterTag.Div);
            output.Write("Server Control Button Process:");
            output.RenderBeginTag(HtmlTextWriterTag.Span);
            output.Write(countVal);
            output.RenderEndTag();
            output.RenderEndTag();

            output.RenderBeginTag(HtmlTextWriterTag.Div);
            output.AddAttribute(HtmlTextWriterAttribute.Name, "button");
            output.AddAttribute(HtmlTextWriterAttribute.Value, "serverControl");
            output.AddAttribute(HtmlTextWriterAttribute.Type, "submit");
            output.RenderBeginTag(HtmlTextWriterTag.Button);
            output.Write("Add to Cart");
            output.RenderEndTag();
            output.RenderEndTag();    
        }
    }
}

1 个答案:

答案 0 :(得分:0)

我会尝试将其从提交更改为按钮。我注意到提交类型按钮标签和按钮输入类型之间的IE存在一些差异。如果这不起作用,你总是可以将信息嵌入到另一个正常工作的属性中然后吐出那些数据。至少你会知道它会起作用。即name =" button-serverControl"

还有助于查看渲染输出。