Как динамически добавлять и удалять несколько форм для одной и той же модели в ASP.NET MVC?C#

Место общения программистов C#
Ответить
Anonymous
 Как динамически добавлять и удалять несколько форм для одной и той же модели в ASP.NET MVC?

Сообщение Anonymous »

Я создаю приложение для ежемесячного бюджета с использованием ASP.NET MVC и хочу, чтобы пользователи могли одновременно создавать несколько записей о доходах (максимум 5 форм на больших экранах и 3 на меньших экранах).
В настоящее время я работаю с ViewModel, которая содержит список форм дохода, но я изо всех сил пытаюсь динамически добавлять или удалять формы в представлении. В идеале пользователи должны иметь возможность нажать кнопку «+», чтобы добавить новую форму дохода, или кнопку «x», чтобы удалить ее.

Код: Выделить всё

 // GET: Incomes/Create
public IActionResult Create()
{
var model = new MultipleIncomeVM();
ViewData["BudgetId"] = new SelectList(_context.Budgets, "BudgetId", "Name");
ViewData["CategoryId"] = new SelectList(_context.Categories, "CategoryId", "Name");
return View(model);
}

// POST: Incomes/Create
[HttpPost]
[ValidateAntiForgeryToken]
public async Task[i] Create(MultipleIncomeVM incomevm)
{
try
{
// Validate only the incomes with Amount greater than 0
var validIncomes = incomevm.Incomes.Where(i => i.Amount > 0);

if (ModelState.IsValid)
{
foreach (var i in validIncomes)
{
// Add each income
_context.Add(i);
await _context.SaveChangesAsync();

// A new transaction
var transaction = new Transaction
{
Date = i.DateReceived,
Type = ControllersName.GetControllerName(this.GetType().Name),
Detail = i.Source,
Amount = i.Amount,
BudgetId = i.BudgetId,
CategoryId = i.CategoryId
};

_context.Add(transaction);
await _context.SaveChangesAsync();
}
return RedirectToAction(nameof(Index));
}
}
catch (DbUpdateException)
{
ModelState.AddModelError("", "Unable to save changes.  Try again, and if the problem persists, see your system administrator.");
}

ViewData["BudgetId"] = new SelectList(_context.Budgets, "BudgetId", "Name");
ViewData["CategoryId"] = new SelectList(_context.Categories, "CategoryId", "Name");
return View(incomevm);
}

Код: Выделить всё

namespace My_Budget.ViewModels
{
public class MultipleIncomeVM
{
public List Incomes { get; set; } = new List
{
new Income { DateReceived = DateTime.Today }
};
}
}

Код: Выделить всё

@model My_Budget.ViewModels.MultipleIncomeVM

@{
ViewData["Title"] = "Create Incomes";
}

Create Multiple Incomes











Source
Amount
Date Received
Category





@for (int i = 0; i < Model.Incomes.Count; i++)
{



















[/i]
[i][/i]


@* Hidden value *@



}









Back to List

@section Scripts {
@{
await Html.RenderPartialAsync("_ValidationScriptsPartial");
}
}
Что я уже пробовал:

Код: Выделить всё

I've created a list in the ViewModel to hold multiple income entries.
I can display multiple forms initially, but I'm unsure how to handle dynamic addition/removal of forms in the view.
Моя цель — управлять созданием и удалением форм дохода в представлении (возможно, с помощью JS?), чтобы пользователи могли интерактивно добавлять или удалять формы по своему усмотрению.Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/791 ... -asp-net-m
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»