Я могу передать модель своему контроллеру с помощью AJAX-вызова, но я не получаю желаемого результата.
Контроллер:
public async Task<ActionResult> UpdateUserDetails([Bind(Exclude = "Password, ReportPassword")]AdminViewModel model)
{
(.... Code that does not need to be displayed ....)
return Json(new { status = "success"}, JsonRequestBehavior.AllowGet);
}
. AJAX-вызов:
.
$("#submitUserDetails").submit(function (e) {
var userId = $("#Id").val();
var FirstName = $("#FirstName").val();
var LastName = $("#LastName").val();
var ResetUserPassword = $("#ResetUserPassword").val();
var Email = $("#Email").val();
var selectedRole = $("input:radio[name='RolesSelectedOnView']:checked").val();
var Model =
{
"Id": userId,
"FirstName": FirstName,
"LastName": LastName,
"ResetUserPassword": ResetUserPassword,
"Email": Email,
"rolesSelectedOnView": selectedRole
};
$.ajax({
url: '@Url.Action("UpdateUserDetails", "Admin")',
data: JSON.stringify(Model),
type: 'POST',
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (data) {
if (data.status === "success") {
$.smallBox({
title: "<strong>Challenge Deleted</strong>",
content: "<i class='fa fa-clock-o'></i> <i>Challenge was successfully deleted! <strong>You will now be redirected back to the My Challenges page</strong></i>",
color: "#659265",
iconSmall: "fa fa-check fa-2x fadeInRight animated",
timeout: 4000
});
}
}
});
});
Итак, я хочу, чтобы тот же экран оставался открытым, но просто хочу, чтобы «SmallBox» отображал сообщение, вместо этого я получаю пустой экран, только с этим:
{"status": "success"}
URL-адрес также содержит всю информацию о модели, которую я также не хочу.
Я даже попытался опубликовать следующееформа для контроллера (которая также работает), но я получаю точно такой же результат!
$("#submitUserDetails").submit(function (e) {
var form = $(this);
var url = form.attr("UpdateUserDetails", "Admin");
$.ajax({
type: "POST",
url: url,
data: JSON.stringify(form.serialize()), // serializes the form's elements.
dataType: "json",
contentType: "application/json; charset-utf-8",
success: function (data) {
//alert(data); // show response from the php script.
$.smallBox({
title: "<strong>User Details Saved</strong>",
content: "<i class='fa fa-clock-o'></i> <i> <strong></strong></i>",
color: "#659265",
iconSmall: "fa fa-check fa-2x fadeInRight animated",
timeout: 4000
});
}
});
e.preventDefault(); // avoid to execute the actual submit of the form.
});
Все, что я хочу сделать, это отправить данные, позволить контроллеру сделать то, что он должен, а затем просто всплывающее окносообщение, что оно было успешно сохранено.Что я делаю не так?
РЕДАКТИРОВАТЬ
Что-то, что можно упомянуть, что может помочь - Это запускается из частичного просмотра