如何知道在传递javascript对象时要创建的参数。
请考虑
var all = [];
//loop through each instrument
for (var i = 0; i < 3; i++) {
var txt = getThis(i);//int
var detail =getThat(i);//string
all.push({
'this': txt,
'that': detail
});
}
ajaxCall.getNow("myUrl", {
all
};
ajaxCall.getNow
只需使用get
调用典型的$ ajax。
问题是我的MVC控制器需要什么参数。
如果我使用object
然后它可以工作,但我不确定我需要做什么才能使用该对象。作为一个对象,它相当无用。
如果我尝试tuple<in, string>
它无法正常工作
EG
public JsonResult MyFunction(Tuple<int,string,string,double,double,string,int> all)//this fails
public JsonResult MyFunction(object all)//this works but I only have an ojbect, I@d like to have something like the tuple to work with
那我怎么知道在我的MVC控制器中设置什么类型的参数呢?
答案 0 :(得分:1)
您的代码将在您的ajax调用中发送此类数据
{
"all": [
{
"this": 0,
"that": "some"
},
{
"this": 1,
"that": "some"
},
{
"this": 2,
"that": "some"
}
]
}
您可以创建此数据的C#表示。
public class All
{
public int @this { get; set; } //because this is a reserved keyword
public string that { get; set; }
}
public class RootObject
{
public List<All> all { get; set; }
}
您可以使用RootObject作为参数
public ActionResult SomeActionName(RootObject model)
{
}
请记住,this
是一个C#关键字,所以尽量避免这种情况。可以用myThis