1

我从客户端调用这个 api 动作。客户端代码也见下文。

API 动作:

public class StudentTestController : ApiController
    {
        [HttpPost]
        public HttpResponseMessage GetLessonInfo(int request)
        {
            HttpResponseMessage result = null;

            result = Request.CreateResponse(HttpStatusCode.OK,StudentTest.GetLessonInfo(request));

            return result;
        }
    }

JavaScript 客户端脚本:

function SendRequest() {

        var url = "http://localhost:1938/api/StudentTest/GetLessonInfo";

        var data1 = "request=293";

        $.ajax({
            type: 'POST',
            url: url,
            data: data1,
            contentType: 'application/json; charset=utf-8',
            dataType: 'jsonp',
            success: function (data) {
                $('#txtResponce').val(JSON.stringify(data.Data));
            },
            error: function (xhr, status, error) {
                var errorText = xhr.status + "\r\n" + status + "\r\n" + error;
                $('#txtResponce').val(errorText);
            }
        });
    }

当我尝试使用上述代码段调用 Action 时,它不会调用控制器操作。如何解决这个问题?

4

1 回答 1

2

帕万。你有没有试过这个:

var url = "/api/StudentTest/GetLessonInfo";
var data1 = "293";

也许“request=293”可以被认为是一个字符串,而不是预期的“int”作为参数。而且由于 int 参数不可为空,因此它可能会给您一个错误的请求响应。

与 Fiddler 检查发送到服务器的内容。

于 2012-11-25T22:19:01.837 回答