我刚刚开始在我的Web应用程序中进行路由,虽然我已经阅读了许多关于路由是什么以及如何编写RouteConfig.cs
或在我的控制器中使用属性路由的教程,但很少有教程真正展示如何处理整个申请。
与大多数Asp.NET Mvc应用程序一样,当您构建控制器时,您将获得创建,编辑和删除方法,并且总是有一个GET
和一个POST
。
但是你如何处理这些方法的路由?
说这些是我的编辑方法,我对post方法进行了哪些路由?我是否需要"修复"当我点击" save"按钮?
// GET: VehicleModels/Edit/5
[Route("Aanbod/Edit/{id:int}")]
public ActionResult Edit(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
VehicleModels vehicleModels = db.VehicleModels
.Include(v => v.Options)
.Include(v => v.Fotos)
.SingleOrDefault(v => v.Id == id);
if (vehicleModels == null)
{
return HttpNotFound();
}
return View(vehicleModels);
}
// POST: VehicleModels/Edit/5
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit(int? id, IEnumerable<HttpPostedFileBase> uploads)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
var VehicleToUpdate = db.VehicleModels.Find(id);
if (TryUpdateModel(VehicleToUpdate))
// my code here
return View(VehicleToUpdate);
}
答案 0 :(得分:4)
如果您正在使用属性路由,则GET和POST操作都将具有相同的路由属性。唯一可能不同的是,如果您为路由命名,在这种情况下,名称应该只在GET版本上。您不能将相同的名称应用于两个不同的路线,即使它们实际上是相同的路线。