问问题
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 */
});
现在你可以像这样定义一个 HTML<a>
元素:
<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
于 2012-08-04T23:20:21.853 回答
0
查询字符串接受参数而不是您拥有的对象类型,因此您必须将其作为带分隔符的查询字符串传递 &
例子 :
var html = "<a href='/test/Index/person?PersonId=123456789&FirtsName=Test......
于 2012-08-04T23:23:38.850 回答