Отобразить диалог jQuery из формы MVC ActionResult - PullRequest
0 голосов
/ 23 февраля 2012

Я все еще мокну, экспериментируя с MVC3.Я не нашел хорошего ресурса, чтобы начать меня.Мне было интересно, могу ли я использовать веб-сервис, который возвращает строку, когда пользователь заканчивает ввод почтового индекса?

Я использовал веб-сервис, используя json, но в веб-приложении ASP.NET.Я смог вернуть франшизу на основании введенного пользователем почтового индекса.Мне было интересно, могу ли я сделать то же самое в MVC?

Как преобразовать в MVC следующее:

    // Html code in my Test.aspx page
    <input id="txtZipCode" type="text" onchange="javscript:changed(this.value)" />
    <div id="Result"></div>

Вот мой код JavaScript:

    function changed(value) {
    $.ajax({
        type: "POST",
        url: "Test.aspx/GetData",
        data: "{'zipcode': '" + value + "'}",
        contentType: "application/json;charset=utf-8",
        dataType: "json",
        success: function (msg) {
            // Replace the div's content with the page method's return.
            $("#Result").text(msg.d);
        },
        error: function () {
            $("#Result").text('Failed');
        }
    });
}

Вот мой код:

[System.Web.Services.WebMethod]
    public static string GetData(string zipcode)
    {
        srvc.bbcs tmp = new srvc.bbcs (); // consume test webservice
        string code = tmp.GetFETerrByZip(zipcode);
        return code;
    }

Ответы [ 2 ]

1 голос
/ 23 февраля 2012

Это очень похоже, вам нужно будет украсить свое действие атрибутом HttpPost, чтобы вы могли принять запрос POST:

[HttpPost]
public ActionResult GetData(string zipcode)
{
 //return DateTime.Now.ToShortDateString();
        srvc.BudgetBlindsCommercialSolutions tmp = new srvc.BudgetBlindsCommercialSolutions();
        string code = tmp.GetFETerrByZip(zipcode);
        return Json(new {code= code});
}

Пока ваш jquery вызов будет:

    function changed(value) {
    $.ajax({
        type: "POST",
        url: "YourController/GetData",
        data: "{'zipcode': '" + value + "'}",
        contentType: "application/json;charset=utf-8",
        dataType: "json",
        success: function (msg) {
            // Replace the div's content with the page method's return.
            $("#Result").text(msg.d);
        },
        error: function () {
            $("#Result").text('Failed');
        }
    });
}
0 голосов
/ 23 февраля 2012

Да, и вы бы сделали это так, как вы только что показали.однако я бы не стал делать это для события onchange, поскольку это означает отправку запроса каждый раз, когда набирается цифра, и это может привести к путаницеВозможно, вместо onblur.

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