有没有办法在jquery中声明模型并在$ .ajax中作为POST参数传递?
我有像
这样的模特public class UserDetail
{
public Role RoleDetail {get;set;}
}
public class Role
{
public int RoleId {get;set;}
}
和js,像这样
function postData(id)
{
@{ var model = new UserDetail{ Role = new Role{ RoleId = id};
$.ajax({
type: 'POST',
url: ...
data: JSON.stringify(model)
});
}
任何想法?
答案 0 :(得分:0)
这是不可能的。原因是Mvc是服务器端技术,其中javascript是客户端。因此,在客户端调用服务器端方法显然是不可能的。
除非你在Mvc中创建一个接受id并返回对象的ActionResult,然后你在发布之前用ajax调用它,所以像这样:
function postData(id)
{
$.getJSON("CreateUserDetail?id=" + id, function( model ) {
$.ajax({
type: 'POST',
url: ...
data: JSON.stringify(model)
});
})
}
但在我看来,这是浪费带宽,为什么不在客户端构建它,所以像这样:
function postData(id)
{
var model = {"RoleDetail":{ "RoleId": id}};
$.ajax({
type: 'POST',
url: ...
data: JSON.stringify(model)
});
}