Witam, piszę w asp.net taki skrypt do edycji harmonogramu mszalnego. I pojawił mi się taki problem, że po jednorazowym pobraniu danych przez ajax wszystkie zdarzenia ajax przestają działać. Kod wygląda tak:
Główny widok odpowiedzialny za wyświetlanie wszystkich dni:
@{var MassContext = new JakubCMF.Models.DatabaseContext();}
<h1>Edytuj harmonogram nabożeństw</h1>
@for (int i = 0; i < 7; i++)
{
var DayMasses = from a in MassContext.MassHoursSchedule where a.DayId == i orderby a.Time select a;
<div class="MassScheduleSection">
<h2>@JakubCMF.CalendarFunctions.GetStringDay(i)</h2>
<table class="table table-bordered table-striped">
<thead>
<tr class="TableLabel">
<th>Godzina</th>
<th>Nabożeństwo</th>
<th colspan="2">Akcja</th>
</tr>
</thead>
<tbody id="DayMass-@i">
@{Html.RenderPartial("_ShowDayMass", DayMasses.ToList<JakubCMF.Models.MassHoursSchedule>());}
</tbody>
<tfoot>
<tr>
@using (Ajax.BeginForm("Add", "Mass", new AjaxOptions() { UpdateTargetId = ("DayMass-" + i) }))
{
<td>
@Html.AntiForgeryToken()
<input name="DayId" type="hidden" value="@i" />
<input type="time" name="Time" />
</td>
<td><input type="text" name="Label" /></td>
<td colspan="2"><input type="submit" value="Dodaj" /></td>
}
</tr>
</tfoot>
</table>
</div>
}
Widok częściowy odpowiedzialny za wyświetlenie danego dnia:
@model List<JakubCMF.Models.MassHoursSchedule>
@if (Model != null)
{
foreach (var a in Model)
{
<tr>
<form action="/Mass/Update" data-ajax="true" data-ajax-mode="replace" data-ajax-update="#[email protected]" id="form2" method="post" novalidate="novalidate">
@using (Ajax.BeginForm("Update", "Mass", new AjaxOptions() { UpdateTargetId = ("DayMass-" + a.DayId) }))
{
<td>
@Html.AntiForgeryToken()
<input name="DayId" type="hidden" value="@a.DayId" />
<input name="Id" type="hidden" value="@a.Id" />
<input type="time" value="@a.Time.ToString(@"hh\:mm")" name="Time" />
</td>
<td><input type="text" name="Label" value="@a.Label" /></td>
<td><input type="submit" value="Aktualizuj" /></td>
}
</form>
@using (Ajax.BeginForm("Remove", "Mass", new AjaxOptions() { UpdateTargetId = ("DayMass-" + a.DayId)}))
{
<td>
@Html.AntiForgeryToken()
<input name="Id" type="hidden" value="@a.Id" />
<input type="submit" value="Usuń" />
</td>
}
</tr>
}
}
I jeszcze widok kontrolera, ale nie wiem czy się do czegoś przyda:
//
// POST: /Mass/Add
[HttpPost]
[ValidateAntiForgeryToken]
[Authorize(Roles = "Admin")]
public ActionResult Add(Models.MassAdd Model)
{
if (ModelState.IsValid)
{
var Mass = new Models.MassHoursSchedule();
Mass.DayId = Model.DayId;
Mass.Label = Model.Label;
Mass.Time = Model.Time;
Database.MassHoursSchedule.Add(Mass);
try
{
Database.SaveChanges();
}
catch (System.Data.Entity.Validation.DbEntityValidationException)
{
}
}
var Result = from a in Database.MassHoursSchedule where a.DayId == Model.DayId orderby a.Time select a;
return PartialView("_ShowDayMass", Result.ToList<MassHoursSchedule>());
}
I problem pojawia się po aktualizacji widoku częściowego. Formularze przestają działać. W jaki sposób mogę to naprawić??