我有这条路线:
routes.MapRoute(name: "Trads",
url: "test_3000/{action}/{traditional}",
defaults: new { controller = "Test_3000", action = "Subset", traditional = UrlParameter.Optional });
使用此方法的Test_3000Controller:
// GET: Test_3000/Subset?traditional=(Chinese Character)
public ActionResult Subset(string traditional)
{
if (traditional == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Test_3000 test_3000 = db.Test_3000.Find(traditional);
if (test_3000 == null)
{
return HttpNotFound();
}
return View(test_3000);
}
此网址有效:
服务器/ test_3000 /子集?传统=的
此网址不起作用:
服务器/ test_3000 /子集和/的
在后一种情况下,'传统'为空。
“Traditional”是SQL表中的一列。
答案 0 :(得分:0)
你试过这个吗?
Routes.MapRoute(name: "Trads",
url: "test_3000/{action}/{traditional?}",
defaults: new { controller = "Test_3000", action = "Subset", traditional = UrlParameter.Optional });
注意传统上的?。 还
public ActionResult Subset(string traditional = null)
{ ... }
因此传统显式设置为可选
答案 1 :(得分:0)
routes.MapRoute(
name: "ChBoPinCritCji",
url: "charbopopincrits/subset/{Char}",
defaults: new { controller = "CharBopoPinCrits", action = "Subset", Char = typeof(string) }
);
这首MapRoute现在可以使用了。
感谢您的关注。