Итак, прежде всего я новичок в asp.net mvc и ajax. То, что я пытаюсь сделать, очень просто;
У меня есть таблица, отображающая список событий, которые может посетить вошедший в систему пользователь. каждый элемент в списке имеет ajax.BeginForm(), который указывает на действие, которое свяжет пользователя с событием.
Когда пользователь подключается к событию, страница должна обновляться, чтобы количество участников правильно отображалось на странице.
Все, это работает правильно. Но что происходит, когда страница обновляется, так это то, что все содержимое моей страницы _Layout.cshtml дублируется внутри копии «div id = «tableevent», которую я указал в «UpdateTargetId» для обновления.
Фрагмент представления
<div id="tableevents">
<table class="table table-striped table-bordered table-condensed">
//I DISPLAY TABLE ITEMS HERE.
@using (Ajax.BeginForm("AddAttendantToEvent", "MadklubEvents", new AjaxOptions()
{
HttpMethod = "post",
UpdateTargetId = "tableevents"
}))
{
@Html.Hidden("EventID", item.MadklubEventID);
<input type="submit" value="Join!" id="join" class="btn" />
}
</table>
</div>
Действие AddAttendantToEvent Возможно, здесь я ошибся. Раньше я просто отправлял данные в это действие через обычную форму отправки, без ajax. Я ничего не изменил в этом действии.
[HttpPost]
[Authorize]
public ActionResult AddAttendantToEvent(int EventID)
{
if (ModelState.IsValid)
{
var uow = new RsvpUnitofWork();
var currentUser = WebSecurity.CurrentUserName;
var Event = uow.EventRepo.Find(EventID);
var user = uow.UserRepo.All.SingleOrDefault(u => u.Profile.UserName.Equals(currentUser));
user.Events.Add(Event);
Event.Attendants.Add(user);
uow.Save();
return RedirectToAction("Index");
}
{
return View();
}
}
Индекс Действие, которое перенаправляется на: здесь инициируется модель представления, содержащая данные, которыми заполнена моя таблица.
public ViewResult Index()
{
ViewModelTest viewmodel = new ViewModelTest();
viewmodel.events = madklubeventRepository.AllIncluding(madklubevent => madklubevent.Attendants).Take(10);
viewmodel.users = kitchenuserRepository.All;
return View(viewmodel);
}
Почему копируется div и почему все содержимое моей основной страницы _Layout дублируется внутри копии тега?
Пожалуйста, направьте меня в правильном направлении! :)