[英]How to redirect to route using custom attribute routing in MVC5
我不確定我嘗試做的是否有效,因為我是C#/ ASP.NET / MVC堆棧的相對新手。
我在ModelController.cs中有這樣的控制器動作
//Get
[Route("{vehiclemake}/models", Name = "NiceUrlForVehicleMakeLookup")]
public async Task<ActionResult> Index(string vehicleMake)
{
// Code removed for readaility
models = await db.VehicleModels.Where(make => make.VehicleMake.Make == vehicleMake).ToListAsync();
return View(models);
}
在另一個名為VehicleMakeController.cs的控制器中,我有以下內容:
[HttpPost]
[Route("VehicleMake/AddNiceName/{makeId}")]
public ActionResult AddNiceName(VehicleMake vehicleMake, int? makeId)
{
if (ModelState.IsValid)
{
var vehicle = db.VehicleMakes.Find(makeId);
vehicle.MakeNiceName = vehicleMake.MakeNiceName;
db.SaveChanges();
return RedirectToRoute("NiceUrlForVehicleMakeLookup");
}
VehicleMake make = vehicleMake;
return View(make);
}
我想做的是,當數據庫更新成功時我正在返回的地方,重定向到我定義的自定義路由(這部分: 返回RedirectToRoute(“NiceUrlForVehicleMakeLookup”); )
我正在使用的觀點只是標准觀點,這可以實現,還是我需要開始研究部分或區域?
提前致謝
指定路徑名稱並不自動意味着提供了路徑值。 您仍然需要手動提供它們以使路由與請求匹配。
在這種情況下,您的路線需要vehicleMake
參數。 我不確定你如何將你的vehicleMake
類型轉換為可以與你的路線一起使用的字符串,所以我只是在這個例子中顯示ToString
。
return RedirectToRoute("NiceUrlForVehicleMakeLookup", new { vehicleMake = vehicleMake.ToString() });
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.