Не могу передать данные JQuery $.ajax в обработчик ashx

Это часть моего кода AJAX:

    $.ajax({
        type: "POST",
        url: "ajax.ashx?method=LoadCities",
        data: "{state_id:'" + state_id + "'}",
        contentType: "application/json;charset=utf-8",
        dataType: "json",
.
.
.

и это часть моего кода обработчика ASHX:

public class ajax : IHttpHandler {

    public void ProcessRequest (HttpContext context) {

        context.Response.ContentType = "application/json;charset=utf-8";

        string method = context.Request["method"];
        if (method == "LoadCities")
        {
            object ss = context.Request.Form["state_id"];
            context.Response.Write(LoadCities(ss));
        }
    }

Я не могу получить "state_id" и всегда null Как я могу получить "state_id"


person Mike    schedule 17.04.2015    source источник
comment
Можете ли вы проверить запрос ajax в инструментах разработчика Chrome, чтобы убедиться, что данные формы включены правильно? Вы должны увидеть его на вкладке «Сеть».   -  person rdans    schedule 17.04.2015
comment
@rdans у моего метода ajax нет проблем. но я не могу передать параметр и получить его значение в ASHX.   -  person Mike    schedule 17.04.2015
comment
Как вы определили, что проблема не на стороне запроса ajax? ты уже проверил?   -  person rdans    schedule 17.04.2015
comment
@rdans да, я проверяю.   -  person Mike    schedule 17.04.2015


Ответы (1)


Вы можете передать его как строку запроса,

$.ajax({
    type: "POST",
    url: "ajax.ashx?method=LoadCities&state_id=" + state_id,
    contentType: "application/json;charset=utf-8",
    dataType: "json",

. . .

и получите свой state_id в обработчике .ashx,

string lsStateId = System.Convert.ToString(context.Request.QueryString["state_id"]);
person Keval Gangani    schedule 17.04.2015
comment
@Dxterity В чем разница между context.Request["state_id"] и context.Request.QueryString["state_id"] - person Mike; 17.04.2015
comment
context.Request — это коллекция всех отправленных данных (QueryStrings, элементы управления вводом и т. д.) из вашей формы и context.Request.QueryString — это коллекция только переменных строки запроса. - person Keval Gangani; 17.04.2015