У меня есть вид с именем Index.cshtml с таблицей пользователей (создавать/редактировать/обновлять функции).У меня возникли проблемы с отображением результатов
При нажатии кнопок (создание/редактирование/обновление) защелкиваются У меня есть диалоговое окно JQuery для него. Далее я использую AJAX пост как это:
- Edit >> вызвать контроллер действий для редактирования и возвращает таблицу JSON >> обновление строки с Javascript
- Delete >> вызвать контроллер действия для удаления и возвращать json >> удалить таблицу строк с javascript
- Создать >> вызвать контроллер действий для создания и перенаправления на Index.cshtml >> ???
Для создания части у меня есть проблема: я хотел бы «просто» показать свое представление, но я нахожусь в сообщении ajax. Я не знаю, как это сделать.
Вот мой код (представление данных, а затем освежающий вид):
$.post($(this).attr('action'), $(this).serialize(), function (data, status) {
$('#my-modal').modal('hide');
if (data.operation == 'edit') {
// Edit
var row = $('#' + data.userid);
row.children(':eq(0)').text(data.company);
row.children(':eq(1)').text(data.username);
row.children(':eq(2)').text(data.email);
row.children(':eq(3)').text(data.firstname);
row.children(':eq(4)').text(data.lastname);
} else if (data.operation == 'delete') {
// Delete
var row = $('#' + data.userid);
row.remove();
} else {
// Create
alert(data);
$("#userList").html(data);
}
})
Как вы можете видеть, я проверяю data.operation, который говорит мне, что если я делаю «изменить» или «удалить» of (последняя возможность) a 'create'. Для создания проблемы заключается в том, что весь мой вид (< html> < body> ...) генерируется и добавляется в div #userList. Это повторяющиеся вещи.
Возможно, это неправильная вещь?
Спасибо.
ОБНОВЛЕНО
Вот мой Создать действие:
[HttpPost]
public ActionResult Create(UserCreateViewModel viewModel)
{
if (!ModelState.IsValid)
{
this.Response.StatusCode = 400;
return PartialView("Create", viewModel);
}
var userDTO = new UserDTO();
Mapper.Map(viewModel, userDTO);
_requestServiceClient.CreateNewUser(userDTO);
return RedirectToAction("Index");
}
Вот мой Индекс действие:
[Authorize]
public ActionResult Index(string q, int? page)
{
var users = _requestServiceClient.GetUsers();
...
...
if (Request.IsAjaxRequest())
return PartialView(userListPaged);
else
return View(usersListPaged);
}
После relexion, в случае «создать», может быть, лучше на мой взгляд, просто перезагрузить страницу, как это:
...
} else if (data.operation == 'create') {
// Create >> refresh the page
location.reload();
}
Спасибо в любом случае.
Пожалуйста, разместите свое действие «Создать», а затем я смогу помочь. – Marc
Я обновил свой вопрос, чтобы показать код. Благодарю. – Bronzato