Используйте Json и AjaxLink для переключения значений ссылок в ASP.NET MVC 2 - PullRequest
0 голосов
/ 15 декабря 2010

У меня есть список дочерних объектов.Я хотел бы иметь возможность переключаться, включены ли они в меньший список объектов, которые имеют отношение к родительскому объекту.Вот так:

<% 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 для метода действия).Это та часть, по которой мне неясно.

  1. Правильно ли я подхожу к этому или есть лучший способ сделать это?
  2. Если этот является правильным подходом, который лучше использовать- AjaxOptions или JQuery (я предполагаю, что ответ - JQuery, поскольку он более гибкий)
  3. В зависимости от ответа на вопрос № 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);
    }

Спасибо!

ОБНОВЛЕНИЕ Я изучал использование частичных представлений для этого, но, похоже, не могу заставить это работать.Я продолжаю возвращаться к этой модели и до сих пор не могу понять, как заставить ее работать!Я не хочу делать репост всей страницы, хотя при том, как я его сейчас настрою, все будет работать.Возможно, это моя проблема?Все еще ищу помощь!

1 Ответ

0 голосов
/ 20 декабря 2010

Я отказался от использования Ajax.ActionLink и пошел с прямым подходом div / jquery ajax. Не то чтобы я тоже знал, как это сделать ... посмотрите мой следующий вопрос и мой окончательный рабочий ответ здесь: Не удается получить jquery $ ajax для вызова метода контроллера .NET MVC 2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...