在我的ASP.Net MVC 4项目中,我在控制器文件夹的子文件夹中有一个控制器 -
/Controllers
/GroupA
/AbcController.cs
Run Code Online (Sandbox Code Playgroud)
在AbcController中,我有两种方法 -
public ActionResult Index()
{
return View();
}
public ActionResult Edit(string value)
{
ViewBag.Message = value;
return View();
}
Run Code Online (Sandbox Code Playgroud)
RouteConfig.cs -
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "TestRoute",
url: "GroupA/{controller}/{action}/{id}",
defaults: new { controller = "AbcController", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
Run Code Online (Sandbox Code Playgroud)
但是当我浏览 http://localhost:2240/groupa/abc/edit/somevalue
,'somevalue'不会传递给方法.它显示为null.
我在这里缺少什么?
在您的路径中,您的参数在声明为id的操作方法中声明为while value.选择一个并坚持下去.
routes.MapRoute(
name: "TestRoute",
url: "GroupA/{controller}/{action}/{value}",
defaults: new { controller = "AbcController", action = "Index", value = UrlParameter.Optional }
);
public ActionResult Edit(string value)
{
ViewBag.Message = value;
return View();
}
Run Code Online (Sandbox Code Playgroud)
编辑:当我们谈论这个主题时,我建议你看一下AttributeRouting.
| 归档时间: |
|
| 查看次数: |
7542 次 |
| 最近记录: |