У меня есть список дочерних объектов.Я хотел бы иметь возможность переключаться, включены ли они в меньший список объектов, которые имеют отношение к родительскому объекту.Вот так:
<% foreach(var child in Model.AllPossibleChildren)%>
<% { %>
<tr>
<td>
<%if(child.Link.Any(r => r.Id == Model.Parent.Id))
{ %>
<%:Ajax.ActionLink("Remove", "RemoveChild", new { aId = Model.Parent.Id, rId = child.Id }, null)%>
<% }
else
{ %>
<%:Ajax.ActionLink("Add", "AddChild", new { aId = Model.Parent.Id, rId = child.Id }, null)%>
<% } %>
</td>
</tr>
<% } %>
Идея в том, что когда пользователь нажимает «Удалить», он удаляет связь между Родителем и Дочерним, а затем каким-то образом (используя Jquery или AjaxOptions) переключает параметры ActionLink.чтобы соответствовать другому условию (Добавить вместо Удалить для текста ссылки, ДобавитьChild вместо RemoveChild для метода действия).Это та часть, по которой мне неясно.
- Правильно ли я подхожу к этому или есть лучший способ сделать это?
- Если этот является правильным подходом, который лучше использовать- AjaxOptions или JQuery (я предполагаю, что ответ - JQuery, поскольку он более гибкий)
- В зависимости от ответа на вопрос № 2, как мне это сделать?
Кстати,вот мой метод действия.Я проверил, что они вызываются правильно и передают правильные параметры.
public JsonResult AddChild(string aId, int rId)
{
//Create Relationship
return Json(result);
}
public JsonResult RemoveChild(string aID, int rID)
{
//Remove Relationship
return Json(result);
}
Спасибо!
ОБНОВЛЕНИЕ Я изучал использование частичных представлений для этого, но, похоже, не могу заставить это работать.Я продолжаю возвращаться к этой модели и до сих пор не могу понять, как заставить ее работать!Я не хочу делать репост всей страницы, хотя при том, как я его сейчас настрою, все будет работать.Возможно, это моя проблема?Все еще ищу помощь!