Я пытаюсь передать логическое значение между контроллером и представлением, но в одном конкретном случае это не работает, и я не вижу, что я делаю неправильно.
В контроллере я объявляю переменную, использую выражение, чтобы дать ей значение,
и присвойте это значение объекту Session. В представлении я извлекаю значение из сеанса и сохраняю его в новом bool. Я также создал некоторые другие логические значения в том же контроллере и представлении. По какой-то причине, хотя другие логические переменные работают правильно, эта не работает.
// In the controller:
bool isDatabaseRecipeRevisionSame = true;
// This evaluates to true:
isDatabaseRecipeRevisionSame = editedRecipe.Revision == savedRecipe.Revision;
Session["match"] = isDatabaseRecipeRevisionSame;
// In the view:
bool isRecipeRevisionSame = (bool)Session["match"];
// or:
bool isRecipeRevisionSame =Convert.ToBoolean(Session["match"]);
Независимо от того, преобразую ли я или преобразую объект сеанса в логическое значение в представлении, результат будет ложным. Если я приведу тот же объект сеанса к целому числу, я получу ноль, а с помощью ToString () я получу «False». Я не понимаю, как некоторые из них работают, как ожидалось, а этот нет. Может кто-нибудь посоветовать, пожалуйста?
Заранее спасибо.
Редактировать: ответы на комментарии.
Переменные Recipe.Revision являются целыми числами. SaveRecipe извлекается из базы данных, редактируется и сохраняется локально как editedRecipe. Перед сохранением правок обратно в базу данных saveRecipe.Revision снова извлекается из БД, чтобы подтвердить, что никто другой не изменил версию БД с момента ее первого извлечения. Если ревизии совпадают, то изменения сохраняются в БД.
Нет других потоков, изменяющих эти значения, и в настоящее время нет пользователей, кроме меня, использующих эту базу данных. Я на самом деле повторил эту проблему сегодня в одном методе, поэтому я думаю, что DBro, вероятно, прав в том, что проблема чувствительности к регистру. С тех пор, как я опубликовал этот вопрос, я изменил часть кода для использования ViewBag, поэтому мне, возможно, больше не придется его переделывать.
Спасибо за совет.