У меня есть страница ASP.Net MVC, на которой я хочу использовать AJAX для обновления дочерней таблицы родительской таблицы, которую пользователь редактирует / просматривает в форме.Я уверен, что это очень стандартный шаблон, но поскольку я новичок в платформе.
На моей странице у меня есть следующее:
<ul id="see_also_list">
<!-- this part is in a partial -->
@if (0 < Model.RelatedCategories.Count)
{
foreach (string cat in Model.RelatedCategories.Keys)
{
<li>@Html.ActionLink(cat, "Details", new { id = Model.RelatedCategories[cat] })
[@Ajax.ActionLink("remove", "RemoveSeeAlso", new { id=Model.Id, RelatedCategory = Model.RelatedCategories[cat] }, new AjaxOptions{ Confirm = "This will remove this item", HttpMethod = "POST", UpdateTargetId = "see_also_list" })]</li>
}
}
else
{
<li>No related Categories listed.</li>
}
<!-- end of partial -->
</ul>
@using (Ajax.BeginForm("AddSeeAlso", new AjaxOptions { UpdateTargetId = "see_also_list", InsertionMode = InsertionMode.Replace }))
{
@Html.HiddenFor(model => model.Id)
@Html.DropDownList("alsoCategories", Model.LoadCategoryDropdown())
<input type="submit" value="Add" />
}
У меня проблема в том, что обаФорма Ajax и Ajax.ActionLink, похоже, ведут себя так же, как HTML.ActionLink - они перемещаются в браузере прямо к действию в форме.Когда включена ссылка на «Подтвердить» AjaxOption, он не отображает никаких подтверждений.Я предполагаю, что мне не хватает некоторой критической части сантехники, необходимой для этого, или что встроенные вспомогательные методы не помогают так сильно, как я надеялся, и мне нужно добавить немного дополнительного JavaScript вручную.
HTML, созданный Ajax.ActionLink, выглядит следующим образом:
<ul id="see_also_list">
<li><a href="/Category/Details/2">Advice and Information </a>
[<a data-ajax="true" data-ajax-confirm="This will remove this item" data-ajax-method="POST" data-ajax-mode="replace" data-ajax-update="#see_also_list" href="/Category/RemoveSeeAlso/1?RelatedCategory=2">remove</a>]</li>
</ul>
Я включаю "jquery.validate.min.js", "jquery.validate.unobtrusive.min.js", "MicrosoftAjax.debug.js "и" MicrosoftMVCAjax.debug.js ".