【发布时间】:2018-04-23 19:11:18
【问题描述】:
环境:
<package id="jQuery" version="3.2.1" targetFramework="net45" />
<package id="Microsoft.AspNet.Mvc" version="5.2.3" targetFramework="net45" />
我尝试将来自我的一个 javascript 文件的请求发布到我在 C# 文件中的方法。到目前为止,请求返回 200 OK,但响应内容为空,使用console.log(response) 显示undefined。是我的请求 url 的问题还是我的 C# 函数不对?任何帮助或建议将不胜感激!
这是我的 Javascript:
<script>
console.log("hello_List!")
function getSearch() {
console.log($("#query").val())
console.log(typeof($("#query").val()))
$.ajax({
type: "POST",
url: "./Search",
data: $("#query").val(),
dataType: "json",
success: OnSuccess,
failure: function (response) {
alert(response.d);
}
});
}
function OnSuccess(response) {
alert("Success!");
console.log(response);
}
</script>
这是我的 C# 函数,它与我的 javascript 文件位于同一文件夹中:
public class UsersController : Controller
{
[HttpPost]
[System.Web.Services.WebMethod]
public JsonResult Search(string query)
{
List<EntityModels.AspNetUser> users = new List<EntityModels.AspNetUser>();
users = db.AspNetUsers.Where(x => x.Email.StartsWith(query)).ToList();
List<SelectListItem> userObjs = new List<SelectListItem>();
foreach (var user in users)
{
var userObj = new SelectListItem
{
Value = user.Id.ToString(),
Text = user.Email
};
userObjs.Add(userObj);
}
return new JsonResult()
{
Data = userObjs,
JsonRequestBehavior = System.Web.Mvc.JsonRequestBehavior.AllowGet
};
}
}
【问题讨论】:
-
data: $("#query").val(),看起来不对 -
谢谢,@epascarello,我试图通过函数传递一些静态字符串,比如 data: "ye" 但它仍然返回一个空字符串,所以我猜它是如何处理字符串出错的?
-
你是调试服务器端代码还是查看网络面板返回的内容?
-
@Qiaofei 你在
data属性中传递什么?你能在这里举个例子吗?
标签: javascript c# asp.net ajax asp.net-mvc