日期:2014-05-20  浏览次数:20519 次

post提交,后台接收到的值不能给服务器控件赋值?
C# code


Default.aspx:
            <div id="txt" runat="server"> </div>
            $.post("Default.aspx","id:100",function(){},"json");

Default.aspx.cs:
            protected void Page_Load(object sender, EventArgs e)
           {

                   txt.InnerHtml = "1";    //可以
       
                   if (Request.Form.Count == 1)
                  {
                       txt.InnerHtml = "2";  //不可以
                       Response.End();
                  }
           }

问题在post提交如何能让服务器控件txt成功赋值?求高手解答啊




------解决方案--------------------
Page_Load()里面,
一般要用到
if(!isPostBack){}
你先好好查查他的意义。
------解决方案--------------------
你如果不是用Ajax的话,把Response.End();这个方法去掉,终止该页的执行了,页面的内容不能输出当然看不到赋值后的内容。
------解决方案--------------------
探讨

$.post("Default.aspx","id:100",function(result){
$("#txt").html(result)
},"json");


protected void Page_Load(object sender, EventArgs e)
{

Response.Write("1")……

------解决方案--------------------
。。。。Response.Write 输出

赋值 在 function里用JS
------解决方案--------------------
正确的方法
<div id="txt"></div>
<script src="jquery-1.7.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$.post('Default.aspx', { id: 100 }, function (data) {
$("#txt").html(data)
});
</script>



protected void Page_Load(object sender, EventArgs e)
{
if (Request.RequestType == "POST")
{
Response.ClearContent();
Response.Write(Request.Form["id"]);
Response.End();
}
}


------解决方案--------------------
这样好像是不行的哦
可以再post的回调函数中处理
 $.post("Default.aspx","id:100",function(result)
{
//这里处理
//...
},"json");