When using the following view code, I can't seem to find where I should be setting the type to POST so that it will reach back to the controller methods.
Right now, if I put the [HttpPost] tag above the method, I get a 404 Not found error when I execute that method. If I don't have the post tag, then I reach the method but the parameters are empty (Not null, just an empty, but instantiated object).
All of the examples I've seen have [HttpPost] or [AcceptVerbs(HttpVerbs.Post)] above the method. I've tried both and can't get it to work.
Error:
Controller:
View
Right now, if I put the [HttpPost] tag above the method, I get a 404 Not found error when I execute that method. If I don't have the post tag, then I reach the method but the parameters are empty (Not null, just an empty, but instantiated object).
All of the examples I've seen have [HttpPost] or [AcceptVerbs(HttpVerbs.Post)] above the method. I've tried both and can't get it to work.
Error:
HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable. Please review the following URL and make sure that it is spelled correctly.
Controller:
//Other CRUD omitted for brevity
[HttpPost]
public ActionResult CreateProducts([DataSourceRequest]DataSourceRequest request, [Bind(Prefix = "models")]IEnumerable<
Models.ItemModel
> itemsToAdd)
{
Models.ShipmentModel shipmentModel = SessionModel;
foreach (Models.ItemModel newItem in itemsToAdd)
{
if (shipmentModel.ItemModelList.Count > 0)
{
var nextID = (from i in shipmentModel.ItemModelList
select i.ItemID).Max() + 1;
newItem.ItemID = nextID;
}
shipmentModel.ItemModelList.Add(newItem);
}
var items = shipmentModel.ItemModelList;
DataSourceResult result = items.ToDataSourceResult(request);
return Json(result, JsonRequestBehavior.AllowGet);
}
View
<
div
id
=
"ShipmentForm"
>
@(Html.Kendo().Grid<
KendoUITestEnvironment.Models.ItemModel
>()
.Name("QuoteItemGrid")
.Columns(columns =>
{
columns.Bound(i => i.FreightClass).Width(50);
columns.Bound(i => i.Length).Width(50);
columns.Bound(i => i.Width).Width(50);
columns.Bound(i => i.Height).Width(50);
columns.Bound(i => i.DimensionUnitOfMeasure).Width(50);
columns.Bound(i => i.QuantityValue).Width(50);
columns.Bound(i => i.QuantityUnitOfMeasure).Width(50);
columns.Bound(i => i.Weight).Width(50);
columns.Bound(i => i.WeightUnitOfMeasure).Width(50);
columns.Bound(i => i.NmfcCode).Width(50);
columns.Bound(i => i.ItemDescription).Width(50);
columns.Command(command => command.Destroy()).Width(110);
})
.ToolBar(toolbar =>
{
toolbar.Create();
toolbar.Save();
})
.Editable(editable => editable.Mode(GridEditMode.InCell))
.Pageable()
.Sortable()
.Scrollable()
.DataSource(dataSource => dataSource
.Ajax()
.Batch(true)
.ServerOperation(false)
.Events(events => events.Error("QuoteItemGrid_ErrorHandler"))
.Model(model =>
{
model.Id(i => i.ItemID);
model.Field(i => i.FreightClass);
})
.Create(create => create.Action("CreateProducts", "Home"))
.Read(read => read.Action("GetProducts", "Home"))
.Update(update => update.Action("UpdateProducts", "Home"))
.Destroy(destroy => destroy.Action("DeleteProducts", "Home"))
)
)
</
div
>