【问题标题】:Assign hidden field value in ashx page?在ashx页面中分配隐藏字段值?
【发布时间】:2012-07-23 19:25:25
【问题描述】:

我需要将文件名变量分配给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"/>

【问题讨论】:

  • 这没有任何意义;该页面在任何地方都不存在。
  • 嗨,我想保存我在文件处理程序中得到的文件名,即 ashx 页面,我想在 webservcie 中使用它,那我该怎么做呢?

标签: c# filehandler


【解决方案1】:

(除非我错了..) ASHX 是一个网络服务,而不是一些代码隐藏。 如果要获取该字段的值,则需要将表单发布到 .ASHX 文件的相应 URL,或者使用 AJAX。

如果你想返回数据,我建议你使用AJAX。

编辑:根据MSDN,我的说法是正确的。 .ASHX 适用于没有 UI 的 HttpHandler。

通用 Web 处理程序 (*.ashx) 所有 Web 的默认 HTTP 处理程序 没有 UI 并且包含 @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 上传文件。

【讨论】:

  • 如果你用代码解释它会很有帮助,我如何将文件名从 ashx 页面发送到 ajax
  • 用一些例子更新了我的答案。请注意,这些都是我的想法,但它们显示了总体思路。
【解决方案2】:

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 控件。

【讨论】:

    猜你喜欢
    • 2012-05-23
    • 2015-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多