У меня есть другое решение, которое использует URL AJAX, чтобы выбрать исходную ссылку, по которой щелкнули. Это решение будет работать правильно только в том случае, если есть только один ActionLink с точным URL:

онтроллер создает список ссылок, как это

<ul id="MainMenu">
@foreach (var item in Model.MenuItems)
{
    <li>@Ajax.ActionLink(item.Caption,
    item.ActionName,
    item.ControllerName,
    new AjaxOptions
    {
        UpdateTargetId = "pageBody",
        OnBegin = "BeginUpdatePage",
        OnComplete = "EndUpdatePage",
        OnFailure = "FailUpdatePage"
    })
    </li>
}
</ul>

У меня есть такой javascript

function BeginUpdatePage() {
 $("#MainMenu li").removeClass('selected');
 $(this).parent().addClass('selected');
 $("#pageBody").fadeTo('slow', 0.5);
}

function EndUpdatePage() {
 $("#pageBody").fadeTo('slow', 1);    
}

function FailUpdatePage() {
 alert('There has been an error loading this page please try again.');
}

в функции BeginUpdatePage строки 1 и 3 выполняются нормально, а в строке 2 "$ (this) .parent (). addClass ('selected');" явно ничего не делает ... (я объявил этот класс в моем css).

Я посмотрел на документы Jquery (Jquery.ajax ()) это говорит о том, что «это» - элемент, по которому щелкнули. Я также проверил "jquery.unobtrusive-ajax.js", который был в моем проекте по умолчанию. Этот файл также передает "this" при выполнении моей функции.

"result = getFunction(element.getAttribute("data-ajax-begin"), ["xhr"]).apply(this,arguments);"

Что я тут не так делаю ... Я виделдругие примеры которые использовали эту технику, но я терпел неудачу весь день!

Как я могу получить к элементу, на котором щелкнули, внутри моего Бегина, завершить функции.

Ответы на вопрос(4)

Ваш ответ на вопрос