C# 需要的建议:MVC4和jQueryAjax

C# 需要的建议:MVC4和jQueryAjax,c#,asp.net-mvc,jquery,C#,Asp.net Mvc,Jquery,需要一些建议-使用MVC4进行项目-用于表单和Ajax 通常我做AJAX调用 我的代码如下所示: $.ajax({ type: "POST", contentType: "application/json; charset=utf-8", url: "@SiteConfig.BaseUrl/assessment/getquestion", data: "{'Assess

需要一些建议-使用MVC4进行项目-用于表单和Ajax

通常我做AJAX调用

我的代码如下所示:

$.ajax({
                type: "POST",
                contentType: "application/json; charset=utf-8",
                url: "@SiteConfig.BaseUrl/assessment/getquestion",
                data: "{'AssessmentId':" + "'" + AssessmentId + "'" + ",'PageNumber':" + PageIndex + "}",
                dataType: "json",
                beforeSend: function(){
                    $('#ajaxLoader').show();
                    $('#questionContainer').hide();
                },
                success: function (msg) {
                    var data = msg.d;
},
                complete: function(){
                    $('#ajaxLoader').hide();
                    $('#questionContainer').show();
                },
                error:function (request, status, error){
                    alert(request.responseText);
                    alert(request);

                    $('#ajaxLoader').hide();
                    //window.location = '@SiteConfig.BaseUrl/questionnaire';
                }   
            });

[HttpPost]
public JsonResult GetQuestion(Guid AssessmentId, Int32 PageNumber)
{
   ... my code
   return this.Json(assessmentInfo, JsonRequestBehavior.AllowGet);
}
我不断得到返回的HTML而不是JSON-它基本上只是将整个页面的HTML发送回方法中-我做错了什么

调试该问题会从javascript中产生以下结果: Javascript:SyntaxError:JSON.parse:enexpected字符

此外,如果我向C#GetQuestion方法添加断点,它不会被命中

这可能是URL路由问题吗


另外,对于那些评论命名约定的人来说:这个方法的目的是为了得到一个问题。命名约定应该首先遵循业务逻辑,然后是技术约定。调用方法postquestion意味着我发布了一个毫无意义的问题。

您应该像这样编辑GetQuestion方法:

[HttpPost]
public JsonResult GetQuestion(Guid AssessmentId, Int32 PageNumber)
{
   //my code
   return this.Json(myClass,JsonRequestBehavior.AllowGet);
}

另外,请正确使用命名约定,如果您得到了一些东西,请调用get方法。如果您发布了一些内容,请调用方法post。

好的,我发现了问题


确实是一个路由问题导致了这个问题。

GetQuestion是POST方法吗?不过,如果你得到了一个问题,请调用它get并使用get检索它。您正在使用POST获取消息,这没有意义。请共享您的解决方案。