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();这个方法去掉,终止该页的执行了,页面的内容不能输出当然看不到赋值后的内容。
------解决方案--------------------
------解决方案--------------------。。。。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");