6
私はURLのようなstackoverflowを作成しようとしています。MVC 4はスラッグ型のURLを作成します
私は次の例で問題なく動作します。しかし、コントローラを取り外すと、エラーが発生します。
http://localhost:12719/Thread/Thread/500/slug-url-text
最初のスレッドは2番目のアクションであることに注意してください。
URLからコントローラ名を除いて、上記のURLを次のように見えるようにするにはどうすればよいですか?デフォルトルートの定義の前に次のルートを置く
http://localhost:12719/Thread/500/slug-url-text
マイルート
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute("Default", // Route name
"{controller}/{action}/{id}/{ignoreThisBit}",
new
{
controller = "Home",
action = "Index",
id = "",
ignoreThisBit = ""
}); // Parameter defaults)
}
}
スレッド制御部
public class ThreadController : Controller
{
//
// GET: /Thread/
public ActionResult Index()
{
string s = URLFriendly("slug-url-text");
string url = "Thread/" + 500 + "/" + s;
return RedirectPermanent(url);
}
public ActionResult Thread(int id, string slug)
{
return View("Index");
}
}
string.IsNullOrWhiteSpaceをstring.IsNullOrEmptyに変更すると、文字列をよりよくチェックできます。 –