У меня есть WebGrid на моей форме с одним из колонны с ActionLink как:Редактировать модель - Есть ли лучший способ?
Html.ActionLink((string)item.Name, "Edit", new { id = item.Id })
Целью ниже код, чтобы показать экран редактирования как всплывающее окно модального и пост обновленного объекта успешно.
Controller - Получить:
public ActionResult Edit(int id)
{
... //Fetch employeeViewModel @id
TempData["StateData"] = employeeViewModel ;
TempData["ViewState"] = "Edit";
return RedirectToAction("Index");
}
Index.cshtml:
@if (TempData.ContainsKey("ViewState") && TempData["ViewState"].ToString() == "Edit")
{
EmployeeViewModel employeeViewModel = (employeeViewModel)TempData["StateData"];
@Html.Partial("_EditEmployee", employeeViewModel)
<script language="javascript">
$(window).load(function() {
$('#editEmployeeModal').modal('show');
});
</script>
}
Изменить форму:
<div class="modal fade" id="editEmployeeModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
...
Все это работает отлично с полным циклом Get/Post модели редактирования. Однако я обеспокоен дополнительной поездки, что я делаю в контроллер-Получ:
return RedirectToAction("Index");
Может кто-нибудь, пожалуйста, руководство для лучшего подхода?
Спасибо!
Спасибо Стив, но не мой код с помощью js для загрузки модального всплывающего окна - $ ('# editEmployeeModal'). Modal ('show'); Мне просто интересно, как мне вернуться из действия «Редактировать контроллер», поэтому мне не нужно вызывать - вернуть RedirectToAction («Index»); – user1552869