I want to add ListItems from a form in ViewComponent to an ASP.NET 5 main application, Mvc.
Component view (Views \ Shared \ Components \ AddListItem \ Default.cshtml):
@model ShoppingList.Models.ListItem <form asp-action="Create"> <div class="form-horizontal"> <hr /> <div asp-validation-summary="ValidationSummary.ModelOnly" class="text-danger"></div> <div class="form-group"> <label asp-for="Description" class="col-md-2 control-label"></label> <div class="col-md-10"> <input asp-for="Description" class="form-control" /> <span asp-validation-for="Description" class="text-danger" /> </div> </div> <div class="form-group"> <div class="col-md-offset-2 col-md-10"> <input type="submit" value="Create" class="btn btn-default" /> </div> </div> </div> </form>
ViewComponent controller (ViewComponents \ AddListItem.cs):
namespace ShoppingList.ViewComponents { public class AddListItem : ViewComponent { private readonly ApplicationDbContext _context; public AddListItem(ApplicationDbContext context) { _context = context; } public IViewComponentResult Invoke(string listId) { return View(); } [HttpPost] [ValidateAntiForgeryToken] public async Task<IViewComponentResult> Create (ListItem listItem) { _context.ListItem.Add(listItem); await _context.SaveChangesAsync(); return View(listItem); } } }
The component is called in home.cshtml:
@{ ViewData["Title"] = "Home Page"; } @Component.Invoke("AddListItem", @ViewBag.DefaultListId)
However, I cannot get this to work. Nothing added.
c # asp.net-core asp.net-core-viewcomponent
Ole Kristian Losvik
source share