【发布时间】:2015-08-10 15:32:25
【问题描述】:
我有一个在 asp.net webform 应用程序中运行的网站。目前我们计划将此 Webform 应用程序转换为 MVC,并满足以下条件。
- 仅新模块将以 MVC 模式开发。
- 现有模块将保留在 aspx 页面中。 (未转换为 MVC)。
- 主页将是 (default.aspx)
例如www.example.com 将指向www.example.com/default.aspx
将要开发的新模块将具有以下参数。
www.example.com/place/Japan
www.example.com/place/USA
www.example.com/place/(anycountry)
所以我开发了一个名为 place 的控制器。
代码:
public class PlaceController : Controller
{
//
// GET: /Place/
[HttpGet]
public ActionResult Index()
{
return View();
}
public ActionResult Index(string country)
{
return View();
}
当我输入以下 URL 时: http://example.com/ 转到http://example.com/default.aspx
我的路由配置有:
routes.MapRoute("Default", "{controller}/{action}/{id}", new { id = UrlParameter.Optional });
但是当我添加以下内容时
routes.MapRoute(
name: "PlaceController",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Place", action = "Index", id = UrlParameter.Optional }
);
并输入 www.example.com 它会转到放置控制器,而不是转到 default.aspx 页面。我将如何解决这个问题
如果我输入 www.example.com/place/japan 我也会得到 resource not found。我应该如何修改索引操作结果?
【问题讨论】:
-
尝试将第二个
mapRoute修改为url: "Place/{action}/{id}",并将其放在另一个mapRoute之前 -
@I19 成功了,谢谢。现在我将如何将 Index() 操作结果指向 www.example.com/place/countryname
标签: asp.net asp.net-mvc