如果要提交的参数是个模型对象 该怎么操作呢
像这一种:
[DataContract] public class Person { [DataMember] public string Name { get; set; } [DataMember] public string Address { get; set; } }
[OperationContract] [WebInvoke(RequestFormat = WebMessageFormat.Json)] public Person DoWork2(Person person)
如果直接提交 你可以拼接json,属性名对了就行了,不过还有一种最简单的方法,用jquery.form ajaxForm是jQuery.form插件提供的功能。
<form id="form1" action="/AjaxDemo/AddCustomer.cspx" method="post"> <p><b>新增客户资料</b></p> <span>Name: </span><input type="text" name="Name" value="abc" /><br /> <span>Age: </span><input type="text" name="Age" value="20" /><br /> <span>Address: </span><input type="text" name="Address" value="武汉" /><br /> <span>Tel:</span> <input type="text" name="Tel" value="12345678" /><br /> <span>Email: </span><input type="text" name="Email" value="test@163.com" /><br /> <br /> <input type="submit" name="btnAddCustomer" value="保存客户资料" /> </form>
<script type="text/javascript"> $(function(){ // 只需要下面这个调用就可以将表单改成异步提交方式! $("#form1").ajaxForm({ success:function(result){ $("#output").val(result); } }); }); </script>
大体上 这样你就更简单了
把它转换成 JSON 字符串提交。
确定行吗 为什么我提交的就出现了这个异常呢
{"ExceptionDetail":null,"ExceptionType":null,"Message":"由于内部错误,服务器无法处理该请求。有关该错误的详细信息,请打开服务器上的 IncludeExceptionDetailInFaults (从 ServiceBehaviorAttribute 或从 <serviceDebug> 配置行为)以便将异常信息发送回客户端,或打开对每个 Microsoft .NET Framework SDK 文档的跟踪并检查服务器跟踪日志。","StackTrace":null}
@yahue: 我确定行,只要你构造的请求是正确的。比如,HTTP 动作为 POST,必要的HTTP HEADERS 还是要有的,Content-Type: application/json,Accept: application/json; charset=utf-8。
只要 键 跟属性名一样就行吧
$.ajax({data:{Name:,Address...}
确定行吗 为什么我提交的就出现了这个异常呢
{"ExceptionDetail":null,"ExceptionType":null,"Message":"由于内部错误,服务器无法处理该请求。有关该错误的详细信息,请打开服务器上的 IncludeExceptionDetailInFaults (从 ServiceBehaviorAttribute 或从 <serviceDebug> 配置行为)以便将异常信息发送回客户端,或打开对每个 Microsoft .NET Framework SDK 文档的跟踪并检查服务器跟踪日志。","StackTrace":null}