как вызвать файл Ashx с помощью Ajax в asp.net - PullRequest
0 голосов
/ 19 апреля 2011

Я занимаюсь разработкой сайта. я хочу вызвать один файл Ashx, который возвращает весь список процессов на сервере

1 Ответ

2 голосов
/ 19 апреля 2011

Шаг: 1 Создайте обработчик и код на стороне сервера, как показано ниже:

<% @ WebHandler Language = "C #" Class = "Обработчик"%>

using System;
using System.Web;
using System.Linq;
public class Handler : IHttpHandler {

    public void ProcessRequest (HttpContext context) {
        context.Response.ContentType = "application/json";

        var processes = System.Diagnostics.Process.GetProcesses();
        System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
        context.Response.Write(serializer.Serialize(processes.Select(p => p.ProcessName)));


    }

    public bool IsReusable {
        get {
            return false;
        }
    }

}

Шаг 2: Дайте необходимые разрешения для вашего пула процессов / приложений asp.net.В версии для разработчиков вы можете добавить тег олицетворения в web.config в качестве ярлыка.

<identity impersonate="true" userName="windows/usernamer" password="password"/>

Шаг 3: Использовать результат обработчика со страницы aspx через ajax или другим способом.Ниже приведен пример использования библиотеки jquery.

<%@ Page Title="Home Page" Language="CS" MasterPageFile="~/Site.Master" AutoEventWireup="false"
    CodeFile="Default.aspx.cs" Inherits="_Default" %>

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js">

</script>
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
    <ul id="processes">

    </ul>

    <script type="text/javascript">
        $(function () {
            $.get("handler.ashx", function (data) {
                $.each(data, function (index, element) {
                    $("#processes").append($("<li />").html(element));
                });
            });
        });    
    </script>
</asp:Content>

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...