Asp.Net MVC 的ContentResult 返回字符串,jquery.post的回调函数不接受,为什么?

后台用contentresult 返回一个字符串“success”
前台jquery.post的回调函数死活不接受
但是返回“1234567”却能接收
后台代码如下:

[HttpPost]
public ContentResult DoSelect(string StudentId)
{
string result = "success";
return Content(result);//这样前台回调函数不能接受,若result=“1234567”却能
}
前台代码如下:

$.post('doselect', { StudentId: studentid }, function (response) {
if (response == 'success')
window.location = 'my';
else
alert(response);
}, "json");//接收不到response,但用chrome看到response了success
我怀疑是返回数据的类型问题,但是试过text/json,text/plain都不行!
有经验者帮助!
最新回答
霸气御姐范

2024-11-03 01:07:24

因为你返回的是字符串"success",对于$.post来说,数据类型应该是html。但是你定的$.post数据类型是json。
要么把$.post最后的"json"去掉
要么return Json(new {result = "success"}),然后在$.post里面用response.result 获取返回值。
与我归江南

2024-11-03 00:20:23

试著用console.log 直接将data内容show出来吧。我曾经看过回传的值是长"{\"id\":\"12345\"}"这种形式,正常应该是{"id":"123456"}的
既然请求和返回都没问题了,问题肯定是出现在客户端解析上面了,试用用ajax函数然后加个error函数绑定看看是抛出什么错误吧。。。
人不喂鸡天猪地灭

2024-11-03 00:45:52

我今天也遇到了这个问题,需要返回一个json对象,下面这种设置text/json是不起作用的
return Content(res,"text/json")
应该
return Json(object,JsonRequestBehavior.AllowGet)
回忆另存为。

2024-11-03 00:08:34

把“json”去掉,变成默认的类型。post接不到,可以试一下get