Javascript 将空数据从$.post发送到控制器模型
我的模型-Javascript 将空数据从$.post发送到控制器模型,javascript,c#,jquery,asp.net-mvc,Javascript,C#,Jquery,Asp.net Mvc,我的模型- public class Phasessfilter { public string Searchterm {get;set;} public string ob1 {get;set;} public string ob2 {get;set;} public string ob3 {get;set;} public List<string> ob4 { get; set; } public List<string&g
public class Phasessfilter
{
public string Searchterm {get;set;}
public string ob1 {get;set;}
public string ob2 {get;set;}
public string ob3 {get;set;}
public List<string> ob4 { get; set; }
public List<string> ob5 { get; set; }
}
这是我的剧本
var recr = "";
var study = "";
var results = "";
var phases1 = [];
var fund = [];
var values = { Searchterm: Searchterm, ob1: recr, ob2: study, ob3: results, ob4: phases1, ob5: fund }
$.post("GtRlts", values, function (abc) {
}
所以我得到了Searchterm、ob1、ob2、ob3的值,但我得到了ob4和ob5的空值。为什么列表不接受数组值,或者我做错了什么。
另外,我不想使用$.ajax将您的模型更改为
public class Phasessfilter
{
public string Searchterm {get;set;}
public string ob1 {get;set;}
public string ob2 {get;set;}
public string ob3 {get;set;}
public List<string> ob4 { get; set; }
public List<string> ob5 { get; set; }
public Phasessfilter()
{
ob4 = new List<string>();
ob5 = new List<string>();
}
}
公共类阶段过滤器
{
公共字符串搜索项{get;set;}
公共字符串ob1{get;set;}
公共字符串ob2{get;set;}
公共字符串ob3{get;set;}
公共列表ob4{get;set;}
公共列表ob5{get;set;}
公共相位过滤器()
{
ob4=新列表();
ob5=新列表();
}
}
将您的型号更改为
public class Phasessfilter
{
public string Searchterm {get;set;}
public string ob1 {get;set;}
public string ob2 {get;set;}
public string ob3 {get;set;}
public List<string> ob4 { get; set; }
public List<string> ob5 { get; set; }
public Phasessfilter()
{
ob4 = new List<string>();
ob5 = new List<string>();
}
}
公共类阶段过滤器
{
公共字符串搜索项{get;set;}
公共字符串ob1{get;set;}
公共字符串ob2{get;set;}
公共字符串ob3{get;set;}
公共列表ob4{get;set;}
公共列表ob5{get;set;}
公共相位过滤器()
{
ob4=新列表();
ob5=新列表();
}
}
嘿,编写的代码非常好,您只需使用其中的值进行测试,就可以正常工作
下面是示例Js代码
var searchterm = "test1";
var recr = "test2";
var study = "test3";
var results = "test4";
var phases1 = ["Test5","Test6"];
var fund = ["Test6", "Test7"];
debugger;
var values = { Searchterm: searchterm, ob1: recr, ob2: study, ob3: results, ob4: phases1, ob5: fund }
$.post(path + "/Dashboard/Home/GtRlts", values, function (abc) {
});
其余代码的引用的输出是相同的
嘿,编写的代码非常好,您只需使用其中的值进行测试,它就可以正常工作 下面是示例Js代码
var searchterm = "test1";
var recr = "test2";
var study = "test3";
var results = "test4";
var phases1 = ["Test5","Test6"];
var fund = ["Test6", "Test7"];
debugger;
var values = { Searchterm: searchterm, ob1: recr, ob2: study, ob3: results, ob4: phases1, ob5: fund }
$.post(path + "/Dashboard/Home/GtRlts", values, function (abc) {
});
其余代码的引用的输出是相同的
您刚刚定义了数组变量,所以它得到了空值
var phases1 = [];
var fund = [];
您必须在其中添加项目:
var phases1 = [1,2];
var fund = [3,4];
您刚刚定义了数组变量,所以它得到了空值
var phases1 = [];
var fund = [];
您必须在其中添加项目:
var phases1 = [1,2];
var fund = [3,4];
您必须将列表设置为参数。List JOP您必须将List设置为参数。列表jop@HimaanSingh我正在尝试它,并且得到count=0而不是null。你还错过了什么吗?@himaansing我正在尝试,我得到的计数=0不是空的。您是否遗漏了其他内容?发送phases1=[]并在debug ob4中检查它是否为null或不在服务器中。是的,它当然会为null,因为按照另一个答案中的说明,在构造函数中初始化所有列表属性是一个好的做法。但是,无论哪种方式,它都不会在反序列化JSON对象时引起问题。因此,为了精确地避免null,我们可以定义PhaseSFilter,如yousend phases1=[]所述,并在debug ob4中检查它在服务器中是否为null。是的,它当然会,作为空值出现,因为按照另一个答案中的说明,在构造函数中初始化所有列表属性是一种很好的做法。但是,无论哪种方式,它都不会在反序列化JSON对象时引起问题。因此,为了避免null,我们可以按照您的说明定义Phasessfilter