JSON получить 404 не найден - PullRequest
1 голос
/ 14 марта 2012

В приложении asp.net mvc у меня есть метод, который возвращает JsonResult в представление.Он отлично работает на моем локальном компьютере, однако, когда приложение развернуто на сервере веб-хостинга, когда я пытаюсь получить эти данные, нажав ссылку просмотра, я получаю 404 Not Found in Firebug.Есть ли кто-нибудь, кто знает возможную причину, по которой это может происходить?Ниже приведены фрагменты кода для создания пути:

    private void get_info()
    {
        var serviceUri = new Uri("/getcountrydata/" + country_name + "/" + arms[0].Name + "/" + arms[1].Name + "/" + arms[2].Name + "/" + arms[3].Name, UriKind.Relative);
        var webClient = new WebClient();
        webClient.OpenReadCompleted += openReadCompleted;
        webClient.OpenReadAsync(serviceUri);
    }

Маршрутизация Global.asax ниже:

routes.MapRoute(
           "getcountrydata",
           "getcountrydata/{country}/{indicator1}/{indicator2}/{indicator3}/{indicator4}",
           new { controller = "Home", action = "getcountrydata" }
       );

Метод getcountrydata выглядит следующим образом:

public JsonResult getcountrydata(string country, string indicator1, string indicator2, string indicator3, string indicator4)
    {

       LegoData legoData = captainClimateRepostory.GetLegoData(country, indicator1, indicator2, indicator3, indicator4);

       DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(LegoData));
       MemoryStream ms = new MemoryStream();
       ser.WriteObject(ms, legoData);

       return Json(ms.ToArray(), JsonRequestBehavior.AllowGet);


    }

Ответы [ 3 ]

3 голосов
/ 14 марта 2012

Я думаю, что это проблема с URL, который вы предоставляете для действия.Он не является относительным по отношению к хост-серверу.Проверьте это сообщение SO ..

jquery Ajax вызов метода контроллера JsonResult приводит к 404 на IIS6

1 голос
/ 14 марта 2012

Внутри Silverlight вы можете создать URL-адрес относительно страницы, на которой размещен ваш XAP:

Uri uri = new Uri(HtmlPage.Document.DocumentUri, "../getcountrydata/");

Еще лучше - относительно вашего XAP:

Uri uri = new Uri(App.Current.Host.Source.AbsoluteUri, "../getcountrydata/");

Дополнительная информация здесь: http://weblogs.asp.net/lduveau/archive/2009/03/13/get-silverlight-xap-and-hosting-page-url.aspx

0 голосов
/ 15 марта 2012

Tanveer-Ibn- Хэш верен - вы указываете, что URL-адрес приложения работает в корневом каталоге.Мой учебник [Работа с DropDownList Box и jQuery] [1] [1]: http://www.asp.net/mvc/tutorials/javascript/working-with-the-dropdownlist-box-and-jquery/using-the-dropdownlist-helper-with-aspnet-mvc показывает, как это сделать правильно.

  1. Fiddler мгновенно покажет вам проблему.
  2. Перед развертыванием следует провести локальное тестирование с IIS.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...