相关疑难解决方法(0)

MVC ajax json发布到控制器动作方法

我试图实现对包含复杂对象作为参数的控制器操作方法的JQuery AJAX调用.我已经阅读了很多博客,并尝试了从中学到的几种技术.我构建了我最好的尝试代码的关键帖子(如下所示)是这里的stackoverflow帖子.

我想触发一个异步帖子,当用户选中一个字段[不是表单保存帖子时调用 - 如我发现的其他示例中所示].

我的意图是:

  • 在客户端上实例化一个对象[不是为View提供类型的ViewModel];
  • 使用视图中多个字段的数据填充对象;
  • 将此对象转换为JSON;
  • 使用jQuery.Ajax方法调用控制器操作方法,传递JSON对象.

结果将作为JSON结果返回; 并且数据将根据返回的结果加载到视图中的字段中.

问题是:

  • 如果action方法属于HttpPost属性,则不会调用控制器Action方法(即使AJAX调用类型设置为'POST').
  • 如果action方法是使用HttpGet赋值的,则参数的属性值为null
  • ReadObject方法抛出错误:"期望元素'root'来自命名空间''..遇到'无',名称'命名空间'".

希望有人可以提供帮助.谢谢.代码如下:

客户端js文件

 var disputeKeyDataObj = {
     "InvoiceNumber": "" + $.trim(this.value) + "",
     "CustomerNumber": "" + $.trim($('#CustomerNumber').val()) + ""
  };

  var disputeKeyDataJSON = JSON.stringify(disputeHeadlineData);      

  $.ajax({
     url: "/cnr/GetDataForInvoiceNumber",
     type: "POST",
     data: disputeKeyDataJSON,
     dataType: 'json',
     contentType: "application/json; charset=utf-8",
     success: EnrichedDisputeKeyData(result)
  });
Run Code Online (Sandbox Code Playgroud)


操作过滤器和与Action方法参数关联的类的类

 [DataContract]  
 public class DisputeKeyData  
 {  
    [DataMember(Name = "InvoiceNumber")]  
    public string InvoiceNumber { get; set; }

    [DataMember(Name = "CustomerNumber")]
    public string CustomerNumber { get; …
Run Code Online (Sandbox Code Playgroud)

ajax asp.net-mvc json

36
推荐指数
1
解决办法
18万
查看次数

标签 统计

ajax ×1

asp.net-mvc ×1

json ×1