asp.net-mvc-4 - 在 asp.net mvc4 中将 List<T> 从 Controller 返回到 ajax

标签 asp.net-mvc-4

我试图在 jquery ajax 调用时从 Controller 获取列表。

但它返回错误“意外的 token S”。

更新- Controller 代码正常。它成功地准备了 list 。但是ajax显示这个错误。

jquery ajax代码-

var urlData = '@Url.Action("GetThanas", "AgentKycEntry")';
$.ajax({
type: "POST",
url: urlData,
contentType: "application/json; charset=utf-8",
data: "{'id':'" + selectedVal + "'}",
dataType: "json",
success: function (result) {
//tasks with restul
},
error: function (request, status, error) {
alert("Request: " + request + " Status: " + status + " Error: " + error);
}
});

Controller 中的代码

    [HttpPost]
    public List<Thana> GetThanas(int id)
    {
        return Thana.GetThanaList(id);
    }

更新-模型代码

   public class Thana
{

    public String ThanaId { get; set; }
    public String ThanaName { get; set; }

    public Thana() { }


    public static List<Thana> GetThanaList(Int32 districtId)
    {
        List<Thana> thanaList = new List<Thana>();


        String ConnectionString = ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;
        using (SqlConnection Connection = new SqlConnection(ConnectionString))
        {
            using (SqlCommand cmd = new SqlCommand("Select ThanaId,ThanaName From tblThanas where ThanaId<>0 And DistrictId=" + districtId + " or DistrictId=0 order By DisplayOrder ASC, ThanaName ASC ", Connection))
            {
                Connection.Open();
                SqlDataReader Reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                while (Reader.Read())
                {
                    Thana thana = new Thana();
                    thana.ThanaId = Reader["ThanaId"].ToString();
                    thana.ThanaName = Reader["ThanaName"].ToString();
                    thanaList.Add(thana);
                }
                if (!Reader.IsClosed)
                {
                    Reader.Close();
                }
            }
        }



        return thanaList;
    }

}

有什么建议吗?

最佳答案

将其作为 Json 返回,试试这个。

public JsonResult GetThanas(int id)
    {
        var list =  Thana.GetThanaList(id);
        return Json(list, JsonRequestBehavior.AllowGet);
    }

编辑:

success: function (result) {
//tasks with restul
    alert(result[0].ThanaName);
},

关于asp.net-mvc-4 - 在 asp.net mvc4 中将 List<T> 从 Controller 返回到 ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19750691/

相关文章:

c# - 如何允许访问某些 Controller 而不访问 ASP.NET MVC 4 中的其他 Controller

asp.net-mvc-4 - HttpContextBase 如何向 ninject 注册?我没有明确绑定(bind)它

asp.net-mvc-4 - 在IIS 7.5中注册.NET Framework 4.5

jquery - 如何在 Ajax.Begin 表单中使用 onBegin 验证请求?

asp.net-mvc-4 - 将 Bootstrap 纳入 Nopcommerce 3.5

asp.net-mvc-4 - 设计建议电子邮件中的取消订阅链接

c# - @Ajax.BeginForm 请求/响应正常,但 Controller 不重定向

c# - JQuery UI sortable() 方法不支持错误

c# - RDLC 矩阵的行号

javascript - 即使在 Html Helper 中提供日期格式后,MVC 也会抛出验证错误