【发布时间】:2016-04-23 06:10:34
【问题描述】:
我有一个网址,上面写着 www.test.com/12345。当用户点击这个 url 时,他应该被重定向到相应的操作方法,其中 "12345" 接受作为其参数。
我有个小想法,可以和RouteConfig一起使用,但还是没有清晰的画面。
谁能帮我解决这个问题?
动作方法是
[HttpPost]
public ActionResult DetailsByCode(string code)
{
IEnumerable<IProductListDto> prdctListDto = _productListDetails.GetProductListByCode(accessCode);
Return "success";
}
并且路由配置是
routes.MapRoute(
name: "Accesscode",
url: "{Areas}/{controller}/{action}/{id}",
defaults: new { Areas = "Student", controller = "Student", action = "DetailsByCode", id = string.Empty }
);
我完整的 routeconfig.cs 是
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "DetailsByCodeRoute",
url: "{Areas}/{controller}/{action}/{id}",
defaults: new { Areas = "Student", controller = "Student", action = "DetailsByCode" }
);
routes.MapRoute(
name: "Accesscode",
url: "{Areas}/{controller}/{action}/{id}",
defaults: new { Areas = "Student", controller = "Student", action = "DetailsByCode", id = string.Empty }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "ChangePassword",
url: "{Areas}/{controller}/{action}/{id}",
defaults: new { Areas = "User", controller = "User", action = "ChangePassword", id = string.Empty }
);
routes.MapRoute(
name: "PasswordReset",
url: "{Areas}/{controller}/{action}/{id}",
defaults: new { Areas = "User", controller = "User", action = "PasswordReset", id = string.Empty }
);
【问题讨论】:
-
那么当您现在输入该网址时会发生什么?它有任何例外吗?发布您的
routeconfig.cs以及action方法代码。 -
您需要指定控制器和方法,或者定义一个特定的路由,其中至少包含一些前缀来标识控制器/动作。
-
@ramiramilu 我用操作方法和路由配置更新了我的问题
-
那么,当您输入
www.test.com/12345时,您是否尝试点击DetailsByCode?你的控制器名称是什么? -
@ramiramilu 是的,我的控制器名称是 Student
标签: visual-studio-2013 asp.net-mvc-5 routeconfig