我有一个与ajax调用请求相关的问题,在堆栈溢出上搜索它尝试了我得到的所有相关帮助,但无法解决问题。问题是我使用此代码从我的 View 向 Controller 请求。
<script type="text/javascript">
$(document).ready(function () {
$('#contactDiv ').click(function() {
var number = $(this).find('.ContactNumber').text();
var dataJson = {"contactNumber": number};
$.ajax({
type: "POST",
url: "../contactWeb/messages",
data: JSON.stringify(dataJson),
//data: dataJson,
//contentType: "application/json",
contentType: "application/json",
cache: false,
success: function (msg) {
//msg for success and error.....
alert(msg);
return true;
}
});
});
});
</script>
接收调用的 Controller 是
[HttpPost]
public JsonResult messages(string dataJson)
{
Int64 userID = Convert.ToInt64(Session["userId"]);
try
{
List<MessagesModel> messagesModel = new List<MessagesModel>();
IMessages MessageObject = new MessagesBLO();
messagesModel = MessageObject.GetAllMessagesWeb(userID , dataJson);
//ViewData["Data"] = messagesModel;
}
catch (Exception e)
{
}
//return View();
string msg = "Error while Uploading....";
return Json(msg, JsonRequestBehavior.AllowGet);
}
但它将 NULL 值传递给 Controller
最佳答案
有几个问题需要解决
需要什么
JsonRequestBehavior.AllowGet
当您的action
类型为post
时。
如果您使用 asp.net mvc4
使用 Url.Action
指定 url,即
url:"@Url.Action("ActionName","ControllerName")"
现在谈论您的问题。
您的参数名称必须匹配,将 dataJson
更改为 contactNumber
。虽然可以使用,但不需要使用 JSON.stringify
作为您正在传递单个字符串参数。
[HttpPost]
public JsonResult messages(string contactNumber)
{
Int64 userID = Convert.ToInt64(Session["userId"]);
关于javascript - Ajax jquery 发送 Null 值到 Mvc4 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22706048/