@fryette

Как возвращать Json файлы в MVC?

При смене языка на сайте шлется вот такой запрос
****/translate_(язык).json
Как мне перехватывать такие запросы и отдавать json файлы?
Ведь Url может быть разными(Home/translate_(язык).json,
Home/screen/translate_(язык).json).
пример был взят тут
plnkr.co/edit/NX51vL4e7IEJqXjVe4nu
из примера видно что js код отправляет запрос по выше указанной ссылке,быть может можно перенаправить код в нужный мне контроллер который и будет возвращать json файлы?)
С JS пока не дружу,но как говорится,очень надо.
Заранее спасибо.
  • Вопрос задан
  • 2369 просмотров
Пригласить эксперта
Ответы на вопрос 1
@sergeysmishin
Если использовать код из примера, то URL к translate_(язык).json файлам будет строиться относительно текущего URL, как Вы написали.
Для того что бы URL не строился относительно текущего адреса, нужно добавить '/' к 'translation_' (из примера). Тогда запросы будут идти на URL вида http://run.plnkr.co/translation_(язык).json и пример работать не будет.

Варианты решения.

Вариант 1 (абсолютный URL). Без контроллера:
В Вашем случае самый простой вариант.
  1. Создать у себя в приложении директорию, где будут храниться все translate_(язык).json файлы. Например, директория /languages (от корня сайта).
  2. Поменять строчку var languageFilePath = 'translation_' + language + '.json'; (из приимера) на : var languageFilePath = '/languages/translation_' + language + '.json';.
  3. Запросы будут вида: http[s]://ваш_сайт//languages/translation_(язык).json'.

Вариант 2 (абсолютный URL). С контроллером.
  1. Создать контроллер, например :
    public class LanguageController : Controller
     {
    	       public ActionResult Index(string language)
    	        {
    	          [...]
    	        }
    	    }
  2. Поменять строчку var languageFilePath = 'translation_' + language + '.json';(из примера) на : var languageFilePath = '/language?/language='+ language;.
  3. Запросы будут вида : http[s]://ваш_сайт//language/language?language=(язык)'.

Вариант 3 (относительный URL).
Ничего не менять а создать HttpHandler который будет обрабатывать json фалы.
Пример тут: msdn.microsoft.com/ru-ru/library/ms228090(v=vs.100...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы