2011-07-29 11 views
0

jQueryの.Postメソッドを使用して、MVCのコントローラアクションメソッドにformCollectionデータを送信する際に、若干の問題が発生しています。私はjQuery経由でデータを送信していますが、アクションコントローラーのformCollectionパラメーターには含まれていません。より具体的にしてください。そこにはありますが、そこにあるとは思っていませんでした。 formCollectionパラメータに2つのエントリがあります。渡されたPopIDと、渡されたシリアル化されたデータ(FirstName = Fifo & LastName = Caputo & DateOfBirth = & DateOfBirth = 7%2F29%2F2011 + 12%3A00%3A00 + AM私はここで何が問題を&市= &州= &国= &郵便+コード= & deathIndicator = &メール= &性別= &言語= & NextOfKin = &電話=) をやっていますか?コントローラの動作。値を渡すためにFormCollectionをJQuery Postメソッドを介してコントローラに渡し、データを取得しています...

[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("")); 
     }); 
    }); 
}); 

任意のアイデア?私は見続けるつもりです。あなたがのviewmodelの代わりにFormCollectionを使用したい理由は、私はわからないが、

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

答えて

2

はこれを試してみてください。

はおそらく、あなたはそうここ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を保存する場合は、あなたのjavascriptで<%:PopID%>を実行する必要はありません。

+0

これは何ですか?私はそれとどう違うのですか? viewModelとは何ですか、なぜそれをformCollectionの代わりに使用するのですか?私はフォームからユーザからデータを収集しています...そして、私のpopIDは私のアクションコントロールの最初のパラメータです。 コントローラの受信データをどのように処理するのですか? – SoftwareSavant

+0

フォームコレクションから遠ざかる方法を示すために更新されました:) –

関連する問題