Nano Hash - криптовалюты, майнинг, программирование

Работа с tempdata в mvc

Поскольку я читал, что после того, как вы установите временные данные, они будут действовать до следующего запроса, и если вам нужно использовать их больше, нам нужно использовать keep. Но в этой ситуации где-то мои временные данные теряются.

Сценарий ниже:

У меня есть представление, и в соответствии с этим у меня есть метод действия в моем контроллере, и здесь я просто устанавливаю временные данные, как показано ниже:

Класс контроллера:

public actionresult myview()
{
   tempdata["Empid"]= sourceid;
} 

Представление состоит из нескольких renderAction, как показано ниже, и все эти методы действий в контроллере возвращают некоторые частичные представления.

@html.renderAction("details","mycontroller")
@html.renderAction("details","mycontroller")
@html.renderAction("details","mycontroller")
@html.renderAction("details","mycontroller")

Теперь в partialviews у меня есть несколько вызовов ajaxified, предположим, что в одном из partialview у меня есть метод публикации, использующий ajax, как показано ниже:

$.post("action", "controller",{}});

Пожалуйста, не обращайте внимания на синтаксические ошибки, так как у меня проблемы только с пониманием логики tempdata.

Итак, подходя к вышеизложенному, теперь методы публикации имеют методы действий, которые используют временные данные, которые я установил, когда моя страница просмотра загружается, то есть tempdata["Empid"], потому что эти временные данные необходимы для получения сведений о сотруднике.

Итак, он получает данные, возвращает данные в формате json, и я отлично показываю их. А пока здесь все в порядке. Теперь у меня есть один из частичных представлений, который использует сообщение ajax для обращения к контроллеру, который не является тем же контроллером, а другим файлом cs. Вот эти временные данные сбиваются.

Почему так происходит..


Ответы:


1

TempData рассчитаны на короткую жизнь по умолчанию. Таким образом, данные, которые вы установили для объекта TempDataDictionary, сохраняются только от одного запроса к следующему запросу. После этого он будет недоступен.

Вы можете использовать TempDataDictionary.Keep() для повторного сохранения значения для следующего запроса.

public ActionResult Index()
{
  TempData["Message"]="Hello";
  return View();
}
public ActionResult GetCustomer()
{
  var msg = TempData["Message"] as string;
  TempData.Keep("Message");
  return View();
}
01.05.2016
  • Совершенно верно, сэр. Просто тот случай, когда я установил временные данные в контроллере в методе действия, который возвращает представление, и я не использовал эти временные данные. Вместо этого в моем представлении есть некоторые действия рендеринга, которые возвращают частичные представления, и в этих частичных представлениях у меня есть вызовы ajax, которые используют tempdata. Будут ли временные данные сохраняться в моем вызове ajax. Я спрашиваю вас, потому что на самом деле это не должно сохраняться, но в этом случае tempdata сохраняется во всех моих запросах ajax. Каждое частичное представление имеет вызовы ajax, и я использую одни и те же временные данные без использования keep. Это означает, что действия рендеринга не являются новыми запросами? 02.05.2016
  • Почему бы тебе самому не попробовать и не посмотреть? Вы также можете рассмотреть состояние сеанса или таблицу БД, если считаете, что временные данные слишком сложны. 02.05.2016
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..