Я ищу способ сохранить мою форму на странице с частичным просмотром. У меня есть 2 строки, одна имеет частичное представление, показывающее список элементов, а другая имеет форму для добавления в этот список.
Я использую их как частичные, потому что они имеют отдельные модели. Я бы хотел, чтобы он обновлял список выше при добавлении нового элемента. Основной вид имеет идентификатор в URL и оба действия, кроме идентификатора. Поэтому я не могу перенаправить на исходную страницу из-за идентификатора и просто вернуть ошибки просмотра.
Это отчет о расходах, который вы выбираете для добавления расходов. Это поднимает эту страницу.
Действия контроллера :
public ActionResult Expenses(int ExpenseId)
{
return View();
}
public ActionResult _ExpenseList(int ExpenseId)
{
return View(db.Expenses.Where(x => x.ExpenseId == ExpenseId).ToList());
}
public ActionResult _ExpenseForm(int ExpenseId)
{
CustomerEntities customerEntities = new CustomerEntities();
List<SelectListItem> categoryItem = new List<SelectListItem>();
ExpensesViewModel casModel = new ExpensesViewModel();
List<ExpenseTypes> expensetypes = customerEntities.ExpenseType.ToList();
expensetypes.ForEach(x =>
{
categoryItem.Add(new SelectListItem
{
Text = x.CategoryItem,
Value = x.ItemCategoryId.ToString()
});
});
casModel.ExpenseTypes = categoryItem;
return View(casModel);
}
[HttpPost]
public ActionResult _ExpenseForm(Expenses newExpense)
{
if (ModelState.IsValid)
{
//db.Users.Add(newUser);
//db.SaveChanges();
var viewModel = new Expenses();
{
viewModel.ExpenseId = newExpense.ExpenseId;
viewModel.ItemName = newExpense.ItemName;
viewModel.Amount = newExpense.Amount;
viewModel.ExpenseDate = newExpense.ExpenseDate;
viewModel.Category = newExpense.Category;
};
//return RedirectToAction("Expenses");
return View();
}
else
{
return View(newExpense);
}
}
Просмотр :
<section class="content">
<div class="row">
@Html.Action("_ExpenseList")
</div>
<br />
<hr />
<div class="row">
@Html.Action("_ExpenseForm")
</div>
</section>
Вот моя текущая кнопка для отправки (Расположен _ExpenseForm
):
<input type="submit" value="Add" class="btn btn-warning btn-sm" />