2

I am trying to get a list from controller upon a jquery ajax call.

But it returns an error 'Unexpected token S'.

UPDATE- Controller code is Ok. It successfully preparing the list. But ajax shows this error.

jquery ajax code-

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);
}
});

Code in controller

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

UPDATE- Model code

   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;
    }

}

Any suggestion ?

2
  • Where do you get this error? in controller? Commented Nov 3, 2013 at 7:20
  • in ajax when getting the list. controller is ok. Commented Nov 3, 2013 at 7:24

1 Answer 1

3

Return it as Json, try this.

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

EDIT:

success: function (result) {
//tasks with restul
    alert(result[0].ThanaName);
},
Sign up to request clarification or add additional context in comments.

6 Comments

I tried this. 'Unexpected token S' error has gone. But I am not getting the List of data. result= [object Object],[object Object],.....
Can I see GetThanaList ?
Json.parse(result) returns nothing.
You need to store it in a variable, like var data = Json.parse(result)
|

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.