将字符串从jQuery传递到C#MVC
本文关键字:C#MVC jQuery 字符串 | 更新日期: 2023-09-27 18:27:52
我在Web MVC
中将字符串值从jQuery
传递到C#
时遇到问题。
这是我的jQuery代码:
$.ajax({
type: 'POST',
url: '/Account/ChangePhoneNumber',
contentType: "application/json; charset=utf-8",
data: newPhone,
dataType: 'json',
success: function (result) {
alert("We returned: " + result);
}
})
这是我的C#方法:
[HttpPost]
public ActionResult ChangePhoneNumber(string data)
{
return View();
}
调试data
时,参数始终为空。我做错了什么?
好的,我已经发现问题所在:
$.ajax({
type: 'POST',
url: '/Account/ChangePhoneNumber',
contentType: "application/json; charset=utf-8",
data: JSON.stringify({data: newPhone}),
dataType: 'json',
success: function (result) {
alert("We returned: " + result);
}
})
我必须添加数据:JSON.stringfy({data:newPhone}),
你差不多到了;
$.ajax({
type: 'POST',
url: '/Account/ChangePhoneNumber',
contentType: "application/json; charset=utf-8",
data: {data: newPhone, foo: bar, fooz: barz}, //<-- mind the array here
dataType: 'json',
success: function (result) {
alert("We returned: " + result);
}
})
这将导致以下结果;
[HttpPost]
public ActionResult ChangePhoneNumber(string data, string foo, string fooz)
{
//data will contain newPhone
//foo will contain bar
//fooz will contain barz
return View();
}
只需确保将对象放在一个数组中即可。所以,在你的情况下:
data: {data: newPhone},
会解决你的问题。
您在ajax调用中没有正确传递data
。你需要像这样通过data: {data: newPhone},
$.ajax({
type: 'POST',
url: '/Account/ChangePhoneNumber',
contentType: "application/json; charset=utf-8",
data: {data: newPhone},
dataType: 'json',
success: function (result) {
alert("We returned: " + result);
}
})
[HttpPost]
public ActionResult ChangePhoneNumber(string data)
{
return View();
}
您需要将数据作为表单对象发布;一些有用的信息可以在这里找到
$.ajax({
type: 'POST',
url: '/Account/ChangePhoneNumber',
contentType: "application/json; charset=utf-8",
data: {data: newPhone},
dataType: 'json',
success: function (result) {
alert("We returned: " + result);
}
})
检查您是如何定义路由的。
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{data}",
defaults: new { controller = "yourcontroller", action = "actionname", data = UrlParameter.Optional }
);
请检查路线中的参数名称是否为"data"
如果您不担心AJAX/JSON,您可以简单地使用$.Post方法。
var url = "@Url.Action("ChangePhoneNumber", "Account")";
$.post(url, { data: newPhone })
.fail(function() {
// do something
})
.done(function(result) {
alert("We returned: " + result);
});