我刚开始在Web应用程序中进行路由,并且阅读了许多关于什么是路由以及如何RouteConfig.cs
在控制器中编写或使用属性路由的教程,但很少有教程真正显示如何处理整个应用程序。
最喜欢的Asp.NET MVC应用程序,当你脚手架控制器,你让你的创建,编辑,删除方法和你总是有一个GET
和一个POST
。
但是您如何处理这些方法的路由呢?
假设这些是我的Edit方法,那么在post方法上放置什么路由呢?当我单击“保存”按钮时,是否需要“修复”其他任何东西才能使该路由起作用?
// 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);
}
如果使用属性路由,则GET和POST操作将具有相同的route属性。唯一可能不同的是,如果您为路线命名,在这种情况下,该名称应仅在GET版本上使用。您不能将相同的名称应用于两条不同的路由,即使它们实际上是同一条路由。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句