我正在使用asp.net mvc4。我有一个action方法,它是一个get方法,因为它返回一个从JavaScript / Jquery调用的mvc视图。
javascript向控制器操作发出get请求。我有一个json对象,我想传递给mvc动作。但是由于它是一个获取请求,因为我需要从中返回一个视图,这很难实现。
是否可以传递映射到控制器操作签名上的对象的json对象?我正在寻找可能有帮助的图书馆,例如http://benalman.com/projects/jquery-bbq-plugin/
任何提示或想法?
答案 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。