0

以下は IService1 の OperationContract です。

 [OperationContract]
 [WebGet(UriTemplate = "/GetStates",ResponseFormat = WebMessageFormat.Json)]
  List<string> GetStates();

Implementation of method GetStates in Service1 class :

public List<string> GetStates()
        {
            DB_MVCEntities db = new DB_MVCEntities();
           // string temp = CountryName.Country;

            string temp = "india";

            var CountryId = (from n in db.tblCountries
                             where n.Country == temp
                             select new { n.Cid }).Single();


            int ii = CountryId.Cid;

            // int ii =  (ObjectQuery<Int32>)CountryId;

            // object oo = CountryId;

            //int countryId = Convert.ToInt32(CountryId);

            var StateResult = (from n in db.tblStates
                               where n.Cid == CountryId.Cid
                               select n.StateName).ToList();

            List<string> aaa = new List<string>();

            foreach (object o in StateResult)
            {
                string t = o.ToString();
                aaa.Add(o.ToString());

            }

            return aaa;
        }

上記の方法では、エンティティ フレームワークを使用してデータベースから状態リストを取得しています。ブラウザでwcfサービスを実行しているとき、正常に動作しています。次の出力が得られていることを意味します

上記のサービスの出力は次のとおりです。

["MH","AP"]


Code for consuming it in MVC3, Register.csheml file:

 $(document).ready(function () {

        $("#Country").change(function () {

            $.ajax({
                url: 'http://localhost:1264/Service1.svc/GetStates',
                type: 'GET',

                contentType: 'application/json; charset=utf-8',
                success: function (data) {
                    $('#State option').remove();
                    $.each(data, function (index, val) {
                        var optionTag = $('<option></option>');
                        $(optionTag).text(val.toString());

                        $('#State').append(optionTag);
                    });
                },
                error: function () {
                    alert("bye..countryes.");
                }
            });
        });
    });

Country の Change イベントが発生すると、次の出力が得られます: コントロールが Success メソッドに移行しません。

成功すると、状態リストを状態ドロップダウンリストにバインドしています。

しかし、mvc3 で json データを取得できません。

bye..countryes.

What was the error?
Thanks in advance.
4

0 に答える 0