1

我正在阅读一本关于 asp.net MVC 的书,我发现了调用返回 JSON 的 Action 方法的不同方法:,使用 Ajax 或 getJSOn,这两种方法是否等同于:-

$.ajax({
type: "GET",
url: "http://localhost:11279/test/testcall",
dataType: "json",
success: function (result) {
var message = result.Title + ": $" + result.CurrentPrice;
$('#Result').html(message);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("Error: " + errorThrown);
}
});

getJSON 是:-

<script type="text/javascript">
$(function () {
$.getJSON("http://localhost:11279/test/testcall",
function (data) {
$.each(data, function (key, val) {
var str = val.Description;
$('<li/>', { html: str }).appendTo($('#auctions'));
});
});
});
</script>

第二个问题

如果我想从控制器类调用上述操作方法或外部 Web 服务而不是使用 javaScript,那么我应该使用哪些 c-sharp 方法?以及我将如何将返回的 JSON 从控制器类传递给看法。BR

4

1 回答 1

1

getJson - 方法允许通过对页面进行 ajax 调用来获取 json 数据。该方法只允许通过get方法传递参数,不允许发布参数。

Ajax() - 这个方法比我们看到的所有其他方法提供更多的控制。您可以通过检查参数列表找出差异

  • 对数据发送和响应数据提供更多控制。
  • 允许处理调用过程中发生的错误。
  • 如果对 ajax 页面的调用成功,则允许处理数据。

回答 2

您可以利用jquery + Ajax()函数在您的 html 页面中使用它。

这是给你的文章:使用 jQuery 调用 WCF 服务的步骤

像这样的东西

function WCFJSON() {
             var userid = "1";
             Type = "POST";
             Url = "Service.svc/GetUser";
             Data = '{"Id": "' + userid + '"}';
             ContentType = "application/json; charset=utf-8";
             DataType = "json"; varProcessData = true; 
             CallService();
         }

//function to call WCF  Service       
         function CallService() {
             $.ajax({
                 type: Type, //GET or POST or PUT or DELETE verb
                 url: Url, // Location of the service
                 data: Data, //Data sent to server
                 contentType: ContentType, // content type sent to server
                 dataType: DataType, //Expected data format from server
                 processdata: ProcessData, //True or False
                 success: function(msg) {//On Successfull service call
                     ServiceSucceeded(msg);
                 },
                 error: ServiceFailed// When Service call fails
             });
         }
于 2013-03-14T10:06:16.433 回答