如何将AJAX/Jquery对象发送到Controller(差异)MVC4
How to send AJAX/Jquery object to Controller (discrepancy) MVC4
我已经有一段时间感到困惑了,原因如下:
我正在尝试发送一个jquery对象
var myObject = {
Title: $('#Title').val(),
Title2: $('#Title2').val(),
Title3: $('#Title3').val(),
};
通过ajax调用
$.ajax({
data: { myObjectName = myObject
},
datatype: "json",
url: "myUrl",
cache: false,
error: function (ts)
{//handle error},
success: function (result)
{//handle success}
});
我在控制器中收到我的对象,如下所示:
public ActionResult MyAction(ObjectType myObjectName)
然而,当从javascript接收对象时,它不会将其识别为这样的对象,而只是实例化一个新的ObjectType。
我知道我可以将其作为字符串发送,如果我将对象放入表单中,则可以对其进行序列化,等等……我想知道的是,为什么这种方法有时似乎对我有效(我已经让它与其他ObjectType一起使用),而在其他情况下却无效。这与物体的复杂程度有关吗?发送不完整的对象?(后一个似乎不是这样,因为我发送了"不完整"的对象,而空字段只是用null实例化)
任何见解都将不胜感激。谢谢
将代码更改为;
$.ajax({
data: myObject,
datatype: "application/json",
type: "POST",
url: "myUrl",
cache: false,
error: function (ts)
{//handle error},
success: function (result)
{//handle success}
});
请注意,该类型是POST,这意味着您还需要将[HttpPost]
添加到ActioResult中。
只要ObjectType
是具有字段的类
public class ObjectType
{
public string Title { get; set; }
public string Title2 { get; set; }
public string Title3 { get; set; }
}
您当前的代码正试图将您的模型绑定到类似的东西上
public class SomeObject
{
ObjectType myObjectName { get; set; }
}
public class ObjectType{
public string Title { get; set; }
public string Title2 { get; set; }
public string Title3 { get; set; }
}
相关文章:
- 函数参数中的数据与指定变量之间的任何性能差异
- java.net和javascript之间正则表达式的差异
- d3中堆栈函数和嵌套函数之间的差异
- FF和Chromium中CSS样式按钮的外观差异
- jsf中两个字符串的颜色代码差异
- PHP和Javascript之间的Regex差异
- 函数产生错误的差异
- 是否有任何JavaScript UI组件可以显示字符串之间的差异
- 在MVC 4中,对Controller的Ajax调用为空
- angularjs中$cookiestore和$cookies之间的差异
- Javascript差异百分比数学
- 找出两个数组中的差异
- AngularJS$inject-点和括号访问器之间的差异
- 在JavaScript中,如何修复元素显示和变量创建之间的初始差异
- 调用laravel{{action(Controller@method}}通过传递vue.js数组中的变量
- moment.js在两个时区格式的日期之间存在差异
- 如果条件为循环-性能差异
- Javascript-如何使用bootstrap日期时间选择器自动计算两个时间输入之间的差异
- 函数声明与函数表达式之间的性能差异
- 如何将AJAX/Jquery对象发送到Controller(差异)MVC4