Как передать параметры функции OnSuccess класса AjaxOptions в ASP.NET MVC?
Как передать параметры функции OnSuccess
класса AjaxOptions
в ASP.NET MVC?
Здесь мой код, но он не работает:
<%= Ajax.ActionLink("Delete",
"Delete",
"MyController",
New With {.id = record.ID},
New AjaxOptions With
{
.Confirm = "Delete record?",
.HttpMethod = "Delete",
.OnSuccess = "updateCount('parameter')"
})
%>
UPDATE
Настройка свойства OnSuccess
на (function(){updateCount('parameter');})
решила мою проблему:
<%= Ajax.ActionLink("Delete",
"Delete",
"MyController",
New With {.id = record.ID},
New AjaxOptions With
{
.Confirm = "Delete record?",
.HttpMethod = "Delete",
.OnSuccess = "(function(){updateCount('parameter');})"
})
%>
Ответы
Ответ 1
Вы можете использовать селектор jQuery для заполнения значения из поля на странице:
<%= Ajax.ActionLink("Delete",
"Delete",
"MyController",
New With {.id = record.ID},
New AjaxOptions With
{
.Confirm = "Delete record?",
.HttpMethod = "Delete",
.OnSuccess = "updateCount($('#SomeField).val()))"
})
%>
Также смотрите здесь: Могу ли я передать параметр с событием OnSuccess в Ajax.ActionLink
Ответ 2
Вот пример MVC4. OnBegin, OnSuccess, OnComplete и OnFailure -функции используются для включения/отключения анимации ajax. Каждая функция передает элемент Id как параметр, чтобы позволить мне повторно использовать функции js для всех моих разделов ajax. ajaxOnbegin() показывает gif, и ajaxOnsuccess снова скрывает его.
<script>
@*Ajax Animation*@
$(document).ready(function () {
$("#ajaxLoadingGif").hide();
});
function ajaxOnbegin(id) {
//show animated gif
$(id).show();
}
function ajaxOnsuccess(id) {
//disable animated gif
$(id).hide();
}
function ajaxOnfailure(id) {
//disbale animated gif
$(id).hide();
}
function ajaxOncomplete(id) {
//disable animated gif
$(id).hide();
}
</script>
@Ajax.ActionLink(linkText: " Hi", // <-- Text to display
actionName: "getJobCards", // <-- Action Method Name
routeValues: new { searchString = ViewBag.searchString},
ajaxOptions: new AjaxOptions{
"#itemId", // <-- DOM element ID to update
InsertionMode = InsertionMode.Replace,
HttpMethod = "GET", // <-- HTTP method
OnBegin = "ajaxOnbegin('#ajaxLoadingGif')",
//="ajaxOnbegin" without parameters
OnSuccess = "ajaxOnsuccess('#ajaxLoadingGif')",
OnComplete = "ajaxOncomplete('#ajaxLoadingGif')",
OnFailure = "ajaxOnfailure('#ajaxLoadingGif')"
},
htmlAttributes: new { id = ViewBag.ajaxId }
)