2016-04-02 15 views
1

私はajax呼び出しからデータを取得する状況があります。私は、アクションメソッドを呼び出し、引数としてデータを渡したい。アクションメソッドに渡されるデータは、パラメータリストのオブジェクトプロパティにマップされる必要があります。 ここにFullQuestionと呼ばれるクラスがあります。mvcアクションメソッドで複雑なJSONオブジェクトを渡す方法は?

public class FullQuestion : Question 
{ 
    public string Title { get; set; } 
    public string Content { get; set; } 
    public List<Tag> Tags { get; set; } 
} 

は、ここに私のAjax呼び出し方法

var finalTagResultText = {Title: "title", Content: "content",Tag: { tagName: "tname", tagDescription: "tdesc"},Tag: { tagName: "tname1", tagDescription: "tdesc1"}}; 
$.ajax({ 
    url: '@Url.Action("AskQuestion", "Dashboard")', 
    type: "POST", 
    data: JSON.stringify(finalTagResultText), 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function(result) { 
     window.location.href = "@Url.Action("Questions", "Dashboard")"; 
    } 
}); 

ここに私のアクションメソッドです。

[HttpPost] 
[ActionName("AskQuestion")] 
public void AskQuestion_Post(FullQuestion question) 
{ 
} 

JSONオブジェクトをFullQuestionオブジェクトとして渡したいと思っています。私はstingifyメソッドを利用するためにjson2ライブラリを使用しました。 タイトルとコンテンツのテキストは取得できますが、Tagオブジェクトはありません。 どのように私はそれを達成することができますか?前もって感謝します。

あなたのコレクションプロパティが Tagsの名前(ない Tag)とそのコレクション以来、あなたは Tagオブジェクトの配列を渡す必要があり、例えば

var finalTagResultText = { .... , Tags: [{ tagName: "tname", tagDescription: "tdesc"}, { tagName: "tname1", tagDescription: "tdesc1"}]}` 

サイドノートれる

答えて

1

:あなたのAJAXの成功コールバックは別のにリダイレクトされますこの場合、ajaxを使用してデータを送信しないでください。アヤックスの全体のポイントは、同じページにとどまることです。標準の送信を行い、POSTメソッドでRedirectToAction()を使用する方が良いでしょう。

+0

感謝を使用することができます。それは私の問題を解決しました。アドバイスに関連して、私は、Ajaxコールを使ったデータの投稿はおそらく最良の方法ではないことを知っていますが、私のデータが別のAjaxコールで動的に取得される状況があります。だから私はそれらをHTMLヘルパークラスに置くことはできません。たぶんこのケースには良い解決策がありますが、私はどのように知っているのですか?乾杯:) –

+0

その場合、あなたはajaxを使用する必要があるかもしれません(しかし、コードの残りの部分を知ることなく、最良のアプローチは何かを確かめることはできません) –

0

次のように正しい形式を使用して、間違ったJSON形式を使用している:

{"Title": "title", "Content": "content","Tag":[{ "tagName": "tname", "tagDescription": "tdesc"},{ "tagName": "tname1", "tagDescription": "tdesc1"}]} 

あなたのJSON文字列を確認するために、あなたは下のリンクをあなたの助けマンのための https://jsonformatter.curiousconcept.com/

関連する問題