私はまさにこのようにしました。
Global.asaxスニペット:
routes.MapRoute(
"GotoPostOrPage",
"p/{dataItemTypeId}/{dataItemId}/{ignored}", // This allows you to append a random slug if you like
new { controller = "DataItem", action = "Details", ignored = UrlParameter.Optional }
);
そして、コントローラーで次のようなものを作成します。
public PartialViewResult Details(int dataItemTypeId, int dataItemId)
{
IDataItemView dataItem = _dataItemService.SelectDataItem(dataItemTypeId, dataItemId);
DataItemViewModel vm = MappingFunctions.DataItemToViewModel(dataItem);
return PartialView("_Details", vm);
}
これにより、stackoverflowが行うのとまったく同じランダムなスラッグを追加できることに注意してください。ただし、stackoverflowは、スラッグをデータベースに保存されているスラッグに修正します。これを実装するのは簡単です。
また、実際のコードを示したことにも注意してください。シナリオに合わせて、明らかに少し(ただしそれほどではない)微調整する必要があります。重要な点は、ルートテーブルにオプションのurlパラメータを追加することです。私の場合、私はそれを完全に無視します。これは実際にはSOが途中で行うことです。したがって、このdaft URLに移動して、ここにアクセスできます:https ://stackoverflow.com/questions/12051094/i-like-to -ケーキを食べる