2012-07-23 66 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控件。