1

私はウェブ全体を検索しましたが、JSON を正しく使用していると思いますが、何が問題なのかわかりません。この json オブジェクトを MVC コントローラー アクションのパラメーターとして渡す必要があります。

JSON:

{ 
"ContactId": "0",
"Fax2": "dsad",
"Phone2": "dsad",
"Tittle": "asdsa",
"Cellphone": "dsadsd", 
"Address": { "City": "kjshksdfks",
             "Country": "undefined",
             "Id": "0",
             "State": "dsadsa"}
}

.NET オブジェクトは次のとおりです。

public class Contact
{
    public string ContactId {get; set;}
    public string Fax2 {get; set;}
    public string Phone2 {get; set;}
    public string Tittle {get; set;}
    public string Cellphone {get; set;}
    public Address ContactAddress {get; set;}
}

ネストされたアドレス タイプは次のとおりです。

public class Address
{
    public string City {get; set;}
    public string Country {get; set;}
    public int Id {get; set;}
    public string State {get; set;}
}

私のJSONの何が問題なのですか?、コントローラーアクションにクリーンを渡すために何が欠けていますか?

正確なエラーは次のとおりです: 無効な JSON プリミティブ: 連絡先

注: JavaScript オブジェクト、JSON.stringify、および toJSON() を使用してみました

前もって感謝します!

4

2 に答える 2

1

完了、解決策を共有します:

タイプが「json」であることを示す請願が行われているため、追加のタイプはjson内にある必要があります。そうでない場合、ルーティングエンジンはそれを非jsonオブジェクトと見なし、そのためjsonが有効でないとマークします。ケース私はこれを行います:

{
  "ContactId": "a",
  "Fax2": "b",
  "Phone2": "c",
  "Title": "d",
  "Cellphone": "e",
  "ContactAddress": {
      "Id": 22,
      "City": "a",
      "State": "b",
      "Country": "c"
    }
},{"provider": 1}

.NET オブジェクトを使用する別のシナリオでは、JSON を使用していたため、追加のパラメーターを渡すために追加の構成は必要ありませんが、コントローラーが多くのパラメーターを受け入れることができることを指定する必要があります。したがって、これを行うには、コントローラーのルートを構成する必要があります。

context.MapRoute(
    "Providers_default",
    "Catalogs/{controller}/{action}/{id1}/{id2}",
    new { controlller = "Provider", action = "Index", id = UrlParameter.Optional }
);

リンクは次のとおりです 。 http://weblogs.asp.net/scottgu/archive/2007/12/03/asp-net-mvc-framework-part-2-url-routing.aspx

よろしくお願いします!

于 2012-05-14T15:45:36.040 に答える