передача FormCollection в контроллер с помощью метода JQuery Post и получение данных обратно ... - PullRequest
0 голосов
/ 29 июля 2011

У меня небольшая проблема с отправкой данных formCollection в мой метод действия контроллера в MVC с использованием метода jQuery .Post.Пока я отправляю данные через jQuery, их нет в параметре formCollection моего контроллера действий, позвольте мне быть более точным, они там, но не совсем так, как я ожидал, что они там будут ... Во-первых,Параметр formCollection теперь имеет 2 записи ... PopID, переданный в (21) плюс сериализованные данные, переданные в (FirstName = Fifo & LastName = Caputo & DateOfBirth = & DateOfBirth = 7% 2F29% 2F2011 + 12% 3A00% 3A00 + AM & City = & State = & Country =& Почтовый индекс + код = & deathIndicator = & email = & пола = & language = & NextOfKin = & Phone =) Что я здесь не так делаю?Действие контроллера.

    [HttpPost]
    public ActionResult SearchByDemographic(int PopID, FormCollection formCollection)
    {
    }

JavaScript-метод Jquery для передачи значений ...

    $(function () {
    $("#DemoGraphSubmit").click(function (e) {
        e.preventDefault();
        var form = $("#DemoGraphID");
        var srlzdform = form.serialize();
        var PopID = <% =PopID %>
        var options = [];
        var serializedForm = form.serialize();
        $.post("/PatientACO/SearchByDemographic", {PopID:PopID,srlzdform:srlzdform}, function (data) {
            options = $.map(data, function (item, i) {
                return "<option value=" + item.Value + ">" + item.Text + "</option>";
            });
            $("#PatientListToAdd").html(options.join(""));
        });
    });
});

Есть идеи?Я буду продолжать искать.

1 Ответ

2 голосов
/ 30 июля 2011

Попробуйте это:

$.post("/PatientACO/SearchByDemographic", srlzdform, function (data) {

Хотя я не уверен, почему вы хотите использовать FormCollection вместо модели представления.

Возможно, вы хотите взглянуть на NerdDinner

Так вот ваше мнение (очевидно, более сложное, чем это)

@model TestModel

<form action="@Url.Action("SearchByDemographic","PatientACO")" method="post">
    @Html.HiddenFor(model => model.PopID)
    @Html.TextBoxFor(model => model.Text)
</form>

Вот ваше действие:

[HttpPost]
public ActionResult SearchByDemographic(TestModel model)
{
}

А вот и ваша модель

public class TestModel
{
    public int PopID { get; set; }
    public string Text { get; set; }
    // more properties
}

Таким образом, если вы сохраняете свой PopID в модели, вам не нужно делать <%: PopID%> в вашем javascript.

...