【发布时间】:2013-10-07 23:14:28
【问题描述】:
我在客户端有一个 javascript 对象,它具有 SettingName 和 SettingValue 属性。
数据示例 -
obj1.SettingName = "createdDate";
obj1.SettingValue = "10/07/2013";
obj2.SettingName = "arrayOfNames";
obj1.SettingValue = SomeArray; //An array of 5 strings
var settingsArray =new Array();
settingsArray[0] = obj1;
settingsArray[1] = obj2;
var settingsContainer = new Object;
settingsContainer.Settings = settingsArray;
ajax 调用 -
$.ajax({
type: "POST",
url: "myURL",
data: { settings: JSON.stringify(settingsContainer)},
dataType: 'json',
success: function (data) {
//do something
}
});
服务器端类-
public class Setting
{
public string SettingName { get; set; }
public object SettingValue { get; set; } //so this can hold multiple data types
}
public class SettingsContainer
{
public List<Setting> Settings { get; set;}
}
控制器动作 -
public ActionResult myURL(SettingsContainer settings) {
//Here, the value for SettingsContainer.Settings[1].SettingValue, which
should be Array[5] i.e. on the C# side, I expect to see Object[5],
is only {object}. I'm not sure what's going on.
Is my approach of handling this correct?
}
任何建议/帮助将不胜感激。谢谢!
【问题讨论】:
-
您的 Javascript 似乎没有在任何地方初始化变量
settings。 -
出现复制粘贴错误:
obj1.SettingValue = Array[5];你的测试中使用过这个吗? -
@MikeW,抱歉,打错了
-
@TravisJ,更正了这一点。我正在尝试做的事情非常复杂,所以我尝试在这里发布我的代码的 sn-p。因此错别字。我道歉。
-
不确定为什么当您将属性设置为 object 时希望看到 object[5]。尝试将其更改为 object[]。
标签: c# javascript asp.net-mvc json