2016-02-11 1 views
1

У меня есть проект mvc.net, который отлично работает.Хранит ли TempData информацию, если вы пытаетесь получить доступ к методам сайта из другого домена?

Я использую этот проект как фильтр, который получает данные, фильтрует его и отправляет обратно JSON.

Пример звонков в этот проект может быть как:

public ActionResult GetSomeData() 
{ 
    var data = new List<HelloWorld>(); 
    TempData["imageData"] = data; // get data, filter it and send back part of it and save the rest in "TEMPDATA" 

    var retunrdtd = new {Success = "hello world"}; 

    return new JsonResult {Data = filteredData, JsonRequestBehavior = JsonRequestBehavior.AllowGet}; 

} 

Я фильтровать данные, поскольку объем данных может быть большим, чтобы я отправить обратно позволяет говорить 100 Элементам списка вместо всего 10000. если г хотите еще 100, я вызываю метод, который проверяет, существует ли tempdata, и берет оставшиеся 9900 из tempdata и дает мне еще 100 и т. д.

Im думает о создании отдельного веб-api, который будет находиться в другом домене. Я хотел бы назвать те методы, которые у меня есть в моем текущем проекте, например:

www.myFilterMvcDotNet.com/home/GetSomeData

Но им не уверен, если TempData будет занимать какую-либо ценность, как только я получил первые 100 списков. Так что мой вопрос прост, не так ли? если не самый лучший способ отслеживать данные, полученные и оставшиеся данные?

ответ

1

Я фильтровать данные, поскольку объем данных может быть большим, поэтому я отправить обратно позволяет сказать, 100 ListItems вместо всех 10000. если я хочу 100 больше я вызвать метод, который проверяет, если TempData существует и принимает оставшиеся 9900 от TempData и дает мне еще 100 и т.д.

TempData не используется для того, что вы пытаетесь сделать. TempData похож на ViewBag, и единственная разница с последней заключается в том, что TempData сохраняется между переадресацией и всеми данными в нем ясны.

Чтобы решить проблему, вы можете посмотреть на How to use Session in ASP.Net MVC ?

+0

Im далеко от эксперта по этому вопросу, но это было при моем понимании, что сессии были созданы только, если вы на самом деле ауте сайта? в моем случае я просто сделаю вызов метода из другого домена, я не буду посещать сайт. Tempdata хранит данные между запросом, я проверяю, является ли оно нулевым в методе, и если я храню данные в нем для нового запроса. Во втором запросе у моей tempdata есть данные, в которых я использую его и снова храню новые tempdata. – ThunD3eR

+1

Использование сеанса - это правильный способ сделать то, что вам нужно. Просто замените TempData на Session. Прочитайте документацию о TempData, которую вы увидите. С помощью сеанса вы сохраняете данные для указанного срока службы с одним запросом. С вашим решением actuel вы отправляете запрос каждый раз, когда пользователю нужны некоторые данные, тогда нет никакой пользы для хранения данных, которые будут потеряны. – CodeNotFound

+0

Спасибо @CodeNotFound – ThunD3eR

 Смежные вопросы

  • Нет связанных вопросов^_^