2012-07-23 55 views
2

我需要爲ashx頁面中的隱藏字段值指定文件名稱變量,如何將值賦給ashx頁面中的隱藏字段?在ashx頁面中分配隱藏的字段值?

.ashx的頁面

public void ProcessRequest(HttpContext context) 
{ 
    var file = context.Request.Files[0]; 
    //here i need to pass this file name in hidden field value 
} 

這是隱藏的申請目前aspx頁面

<asp:HiddenField ID="hdnFileName" runat="server"/> 
+0

這沒有任何意義;該頁面不存在任何地方。 – SLaks 2012-07-23 19:26:44

+0

嗨,我想保存文件名稱我得到的文件處理程序ie是ashx頁面,我想在webservcie中使用它,那麼我該怎麼做呢? – user1527989 2012-07-23 19:29:12

回答

1

(除非我非常錯誤的。)ASHX是一個Web服務,而不是一些代碼隱藏。 如果您想獲取該字段的值,則需要將表單發佈到.ASHX文件的相應URL或使用AJAX。

如果你想返回數據,我建議你使用AJAX。

編輯:根據MSDN,我的說法是正確的。 .ASHX適用於沒有UI的HttpHandlers。

通用網絡處理器(* .ashx的),對於不具有UI和所有Web 處理器默認HTTP處理程序包括@ WebHandler 指令。

的如何使用AJAX張貼舉例:

$(function(){ 
    $.ajax({ 
      url:'location of your ashx goes here', 
      type: 'post', 
      success: function(data){ 
      $("#hdnFileName").val(data); 
    } 
}; 

你ASHX將返回數據:

public string ProcessRequest(HttpContext context) 
{ 
    var file = context.Request.Files[0]; 
    //here i need to pass this file name in hidden field value 
    return fileName; 
} 

注:也https://stackoverflow.com/a/8758614/690178看到使用AJAX上傳文件。

+1

如果你使用代碼measn解釋它會幫助完整,我怎麼能從ashx頁面發送文件名到ajax – user1527989 2012-07-23 19:43:35

+2

更新我的答案與一些例子。請注意,這些是我的頭等大事,但它們顯示了一般想法。 – Yoeri 2012-07-23 19:49:45

0

ASHX只是一個原始的ASP.NET Web處理程序文件。這意味着您實現了一個IHttpHandler接口,該接口定義了一個屬性IsReusable和一個方法ProcessRequest,該方法獲取在HttpContext參數中傳遞的HttpRequest和HttpReponse。一個典型的ASHX實現看起來在某種程度上是這樣的:

public class Handler : IHttpHandler 
{ 
    public void ProcessRequest (HttpContext context) 
    { 
     // Access the raw HttpRequest and HttpResponse via context 
    } 

    public bool IsReusable 
    { 
     get 
     { 
      return false; // Define if ASP.NET may reuse instance for subsequent requests 
     } 
    } 
} 

所以你不要在錯過任何HTML或瀏覽抽象處理程序文件創建一個隱藏字段。你可以做的是寫原始HTML輸出到響應,串並通過

<input type="hidden" name="somename" /> 

聲明隱藏字段我不建議在一個ASHX處理程序這樣做。如果您需要HTML輸出,請查看ASPX頁面或ASCX控件。

相關問題