こんにちは私は自分のURLのルーティングパスを定義しようとしています。これはこれまでのところ次のようになっています。
routes.MapRoute(
name: "Category",
url: "{controller}/DisplayBooksByCategory/{categoryId}/{pageNumber}",
defaults: new { controller = "Home", action = "DisplayBooksByCategory" }
);
これは機能しますが、正確には私が望むものではありません。現時点では、私のURLは次のようになっています。
http://localhost:51208/Home/DisplayBooksByCategory/7/1
私が欲しいのは、categoryIdを実際のカテゴリ名に置き換えることができるようにすることです。カテゴリ名はパラメータとしてactionに渡されず、categoryIdのみです。これが私のアクションです。
public ActionResult DisplayBooksByCategory(int pageNumber, int categoryId)
{
int bookByCategoryCount = bookRepository.CountBooksByCategory(categoryId);
var entities = new BooksAndCategories
{
Books = bookRepository.GetBookByCategory(categoryId, pageNumber, numberOfBooksOnPage),
PageNumber = pageNumber,
LastPageNumber = (bookByCategoryCount / numberOfBooksOnPage) + 1,
NumberOfBooksPerPage = numberOfBooksOnPage,
Categories = categoryRepository.GetCategories(),
CurentPage = "ProductManager",
CurentCategory = categoryId
};
return View("DisplayBooksByCategory", entities);
}
アクションを変更せずにルーティングAPIを使用してそれを行う方法はありますか?