Вид:Просмотр не восстановление на вызов контроллера
@if (Model.IsEventActive)
{
<div id="GameEvent">
//SomeCode
</div>
}
else
{
<div id="GameNonEvent">
//SomeCode
</div>
}
JS файл:
$('#btnNextEvent').click(function() {
$.ajax({
type: "POST",
url: "Game/UpdateUserEventInfo"
//success: function() {
// $("#GameEvent").hide();
//}
});
});
Контроллер:
[HttpPost]
public ActionResult UpdateUserEventInfo()
{
var user = _user;
_instance.Users.UpdateUserEventInfo(user);
return RedirectToAction("Index");
}
public ActionResult Index()
{
if (!_instance.Users.CheckUserSkillsExist(WebSecurity.CurrentUserName))
{
return RedirectToAction("CreateChar");
}
_instance.GameBase.GetBaseData();
var userModel = GetPlayerDisplayStats();
return View(userModel);
}
Если мое начало IsEventActive = истина;
Просмотр FullEvent в определенный момент вызывает мой метод JS, который вызывает вызов ajax для UpdateUserEventInfo.
Итак, в основном то, что должно произойти, - это когда запускается метод контроллера UpdateUserEventInfo, он обновляет базу данных и затем снова вызывает мой индекс. Просмотр индекса перестраивает модель и запускает представление. View проверяет IsEventActive и создает на основе div.
На этой странице показано GameEvent Div в начале, потому что IsEventActive имеет значение true, но когда индексный указатель снова восстанавливается с помощью вызова ajax. Петли if-else следуют правильно и идут в div GameNonEvent и создают его. Но я не вижу этого на странице. На странице все еще отображается GamEvent Div. Хотя представление не входило в утверждение if.
Если я обновляю страницу, она отображается правильно.
не будет ли он заканчиваться двойными объявлениями всех элементов html таким образом, если его действие вернет полную страницу (данные)? – vlscanner
он должен убедиться, что в случае 'Model.IsEventActive == false' возвращается только html под' else'. – Igor
Это дает мне представление. Я могу просто создать оба div на загрузке страницы и сделать одну из них скрытой. Затем, после успеха вызова ajax, я могу переключать скрытые классы. Это должно работать правильно? – ArjaaAine