2012-03-18 38 views
0

我在做一個AJAX POST到使用jQuery這樣這個網址: 在ASP.NET窗體的Ajax文章中,控件值全部爲空?

var url = '/Actions/NewBlog.aspx?m=ajax'; 
$.ajax({   
    type: 'POST', 
    url: url, 
    data: { txt : con }, 
    success: function() { 
     $('#divDraftMsg').show();    
    }, 
    dataType: 'text' 
}); 

然後在服務器端,我想讀的控件的值。這是我的部分代碼:

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (Request.QueryString["m"] != null && !string.IsNullOrEmpty(Request.QueryString["m"])) 
     { 
      SaveDraft(); 
      Response.Clear(); 
      return; 
     } 
    } 

    private void SaveDraft() 
    { 
     BlogInfo blogInfo = new BlogInfo(); 
     blogInfo.Content_BD = txtContent.Text + hdnDraft.Value; 
     blogInfo.Owner_ND = Profile.StudentID.ToString(); 
     blogInfo.PostedOn_ND = DateTime.Now; 
     blogInfo.SaveDraft(); 
    } 

但是在代碼隱藏文件中,所有控件的值都是空白的,即使它們在ajax調用之前都在窗體(UI)內填充了值。那麼,這裏有什麼問題?

此外,我發佈JSON數據,但不知道如何從.cs文件中讀取它?

+1

使用這個'data:$('form')。serialize();'它將完成所有工作。 – gdoron 2012-03-18 07:07:27

+0

:)已經做到了。我只是擔心可以用這種方式發佈的「數據量」。 – MrClan 2012-03-18 07:19:18

+0

如果我沒有錯,沒有限制,因爲它是一個POST請求,數據不一定在'queryString'它可以在PARAMS中。 – gdoron 2012-03-18 07:46:55

回答

1

您需要使用data傳遞值並將它們作爲查詢字符串參數進行訪問。在這種情況下, Request.QueryString["txt"]

+0

謝謝你的工作。但是,在代碼隱藏方面,空白表單值呢? – MrClan 2012-03-18 06:32:44

+0

如果您使用ajax請求,則必須通過查詢字符串傳遞所需的數據(與'data'相同),表單字段僅可用於回發。 [更多信息](http://cmsnsoftware.blogspot.com/search/label/Ajax) – 2012-03-18 06:39:42

+0

據我猜測,通過querystrings可以發送的數據量有一些限制,並且它不是很大。 如果要發佈的值對於查詢字符串來說太長,該怎麼辦? – MrClan 2012-03-18 06:46:46

相關問題