在jquery中声明MVC模型并作为数据参数传递

时间:2016-04-20 08:36:58

标签: jquery asp.net-mvc-4

有没有办法在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)
  });
}

任何想法?

1 个答案:

答案 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)
  });
}