簡體   English   中英

如何在MVC5中使用自定義屬性路由重定向到路由

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM