我正在尝试将动态构建的数据模型从Java脚本发布到Controller:
以下是我的两个模型类:
public class TestModel
{
public TestModel()
{
lst = new List<SubCls>();
}
public int ID { get; set; }
public string Name { get; set; }
public List<SubCls> lst { get; set; }
}
public class SubCls
{
public SubCls()
{
}
public int SubID { get; set; }
public string SubName { get; set; }
}
在控制器端我有一个带有TestModel参数的函数:
[HttpPost]
public ActionResult TestJS(TestModel modelobj, FormCollection formob)
{
}
在Java脚本中,我有以下内容:
var lstsub = {
SubID: 1,
SubName: "Sub"
};
var modelobj = {
ID: 1,
Name: 'MyName',
lst: [lstsub]
};
$.ajax({
url: '@Url.Action("TestJS")',
method: 'POST',
data: modelobj,
sucess: function () { alert('Success'); }
});
现在当这个调用到达服务器时,我可以看到在TestModel字段ID和Name中填充的值,lst字段也有一个0索引的对象,但列表的SubID和SubName字段是0和Null。
另一个观察是,如果我看到表单集合中的值,那么对于lst字段,键就像lst [0] [SubID]而不是lst [0]。[SubID],所以也许这就是为什么它不是正确映射。
如何从java脚本中正确发送此数据,以便使用实际值填充列表。
由于
答案 0 :(得分:0)
如果这不起作用,请尝试推送到数组
var lstsub = [];
lstsub.push({
SubID: 1,
SubName: 'Sub'
});
答案 1 :(得分:0)
您可能需要为ajax调用添加设置,例如traditional:true,dataType:json,
$。AJAX({
url:&#39; @ Url.Action(&#34; TestJS&#34;)&#39;,
方法:&#39; POST&#39;,
传统的:真的,
dataType:json,
数据:modelobj,
成功:function(){alert(&#39; Success&#39;); }
});