QueryString不反序列化为参数(ASP.NET MVC)

时间:2016-09-15 23:03:21

标签: jquery ajax asp.net-mvc

我的控制器中有这个功能

public ActionResult postcomment(string gCaptcha,string txtName, string txtEmail, string txtMessage)

我将JQuery Ajax Querystring(PlainText)作为

传递
gCaptcha=A&txtName=B&txtEmail=C&txtMessage=D

当我暂停post postment代码时,参数的值为空。我需要做什么,RoutesConfig文件中的任何内容?

这是我的JQuery功能。

  $.ajax({
    type: "POST",
    url: '@(Request.RawUrl + "/postcomment")',
    dataType: "text",
    data: data,
    contentType: "text/plain; charset=utf-8",
    success: function() {
      alert('success');
    },
    failure: function(response) {
      alert(response.d);
    }
  });
});

1 个答案:

答案 0 :(得分:0)

我也有帖子上的值为null的问题。我要做的是创建一个对象,并使该对象成为action方法的参数。所以你会做类似的事情:

public class CommentViewModel
{
  public string gCaptcha { get; set; }
  public string txtName { get; set; }
  public string txtEmail { get; set; }
  public string txtMessage { get; set; }
}

public ActionResult postcomment(CommentViewModel comment)

正如Stephen在评论中提到的那样,将您的数据作为json对象并从Ajax调用中删除contentType