0

ルート権限を取得しやすくするために、AttributeRoutingライブラリを使用しています。POST属性でマークされたメソッドがあり、次のように文字列パラメーターを取得します。

[POST("Create")]
public ActionResult Create(string data)
{
    JavaScriptResult result = new JavaScriptResult();

    User user = JsonConvert.DeserializeObject<User>(data);
    BLResult bLResult = AccountingBL.CreateAccount(user);
    result.Script = JsonConvert.SerializeObject(bLResult);

    return result;
}

Fiddlerを使用して、次のヘッダーとリクエスト本文を使用してPOSTリクエストをシミュレートします。

ヘッダー:

User-Agent: Fiddler
Host: localhost:2253
Content-Type: application/json
Content-Length: 67

リクエスト本文:

{"Email":"foo@foo.com","Password":"123456","Name":"Halil İbrahim"}

リクエストを追跡すると、それdataがnullであることがわかります。私はどこでポイントを逃しますか?

4

1 に答える 1

1

ユーザーインスタンスを直接取得するには、ASP.NETMVCのModelBinding機能を利用する必要があります

アクションを再構築して

[POST("Create")]
public ActionResult Create(User user)
{
    BLResult bLResult = AccountingBL.CreateAccount(user);

    result.Script = JsonConvert.SerializeObject(bLResult);

    return result;
}

ここUserで、はの形式です。Userに引数コンストラクターがないことを確認してください

public class User {

    public string Name {get;set;}

    public string Password {get;set;}

    public string Email {get;set;}

}

そして、データをPOSTに送信します。

var user = {"Email":"foo@foo.com","Password":"123456","Name":"Halil İbrahim"}

 $.ajax({
   .... other details
   data : user
 }
于 2013-01-06T15:52:43.880 に答える