使用get请求将json对象传递给控制器​​操作

时间:2013-03-29 22:09:08

标签: javascript jquery asp.net-mvc asp.net-mvc-4 get

我正在使用asp.net mvc4。我有一个action方法,它是一个get方法,因为它返回一个从JavaScript / Jquery调用的mvc视图。

javascript向控制器操作发出get请求。我有一个json对象,我想传递给mvc动作。但是由于它是一个获取请求,因为我需要从中返回一个视图,这很难实现。

是否可以传递映射到控制器操作签名上的对象的json对象?我正在寻找可能有帮助的图书馆,例如http://benalman.com/projects/jquery-bbq-plugin/

任何提示或想法?

2 个答案:

答案 0 :(得分:1)

你可以使用像servicestack http://www.servicestack.net/这样的东西来处理所有事情,并且做得很好,作为MVC API选项的另一种选择,但servicestack在这方面更好。

我相信如果你看一下这个项目,你会从中获得很好的想法,或者学习将你的数据驱动代码与你的UI项目分开。

答案 1 :(得分:1)

您不需要任何外部API来执行此操作。您需要做的就是使用与JSON对象相同的属性和名称创建一个c#对象。 例如创建一个对象

public class MyObject{
    public string MyProperty1{get; set;}
    public string Property2{get; set;}
}

在jquery中创建对象是正确的我假设并使用像。的jquery语法 如下

$.get('@Url.Action("MyAction","MyController")',
    {myObject: jqueryObject},
    function(resp){$("#myDiv").innerHTML(resp);});

在Action的情况下使用函数声明,如

public ActionResult MyAction(MyObject myObject)
{
    // your code here
    return PartialView("_MyPartialView", myModelForPartialView);
}

BTW这种方式适用于Get和Post。