質問する
4976 次
3 に答える
3
あなたができることは、HTTP POST
代わりにリクエストを行うことですHTTP GET
。
$('#postLink').click(function() {
var MyPerson = {
ID: 1234,
FirstName: 'abc',
LastName: 'def'
};
$.ajax({
data: MyPerson,
url: $(this).attr('href'),
type: 'POST',
dataType: 'json' /* this really is optional */,
success: function (response) {
return true;
},
error: function ( error ) {
return false;
}
)};
return false; /* required to stop event propagation */
});
<a>
これで、次のように HTML 要素を定義できます。
<a href="/test/Index" id="postLink">Ajax post the person to the server.</a>
これで、コントローラーはPerson
オブジェクトを解析できるようになります。
編集List<Person>
:各リクエストで渡さない場合は、を削除することをお勧めします。ASP.NET が複雑な型 (Person
この場合) を要求のデータ型として識別するのに役立ちます。ビューの厳密に型指定されたデータ コンテキストを持つように、ビューごとに ViewModel を作成することをお勧めします。
class PersonViewModel
{
public int ID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
于 2012-08-04T23:31:03.083 に答える
0
そんなことはできません。URI は文字列です。文字列としてフォーマットされていないデータを渡したい場合は、それを文字列にシリアル化し、反対側で逆シリアル化する必要があります。
一般的に、JSONは一般的なシリアル化形式ですが、すべての文字列が URI セーフであるとは限らないため、URI に含める前にJSON テキストをエンコードする必要があることに注意してください。
ただし、データが 3 つしかないので、次のことができます。
var html = "<a href='/test/Index/person/" +
encodeURIComponent( MyPerson.ID ) + "/" +
encodeURIComponent( MyPerson.FirstName ) + "/" +
encodeURIComponent( MyPerson.LastName ) +
"></a>";
または、データがサーバーに既に存在する場合は、ID 値を渡して、データベースから名前を取得します。
于 2012-08-04T23:20:21.853 に答える