当我使用
从控制器重定向时RedirectToAction("Index", "Controller");
或使用UrlHelper生成链接
@Url.Action("Index","Controller");
在两种方式中,“/ Index”部分都是从我的URL条带化下来的。 虽然对于SEO目的,我希望我的网址始终以相同的方式显示。
www.domain.com/en/Controller/Index
但现在我
www.domain.com/en/Controller
如何强制执行上述两种方法始终显示“/ Index”部分。
P.S我知道这是因为“索引”在我的路线上被指示为默认动作,但无论哪种方式我希望它显示。
答案 0 :(得分:1)
使用Index action
在具有默认路由之前的RouteConfig中添加新角色routes.MapRoute(
name: "DefaultIndex",
url: "{controller}/Index/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
答案 1 :(得分:0)
检查global.asax
文件中的配置。它可以是这样的。
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Controller", action = "Index", id = UrlParameter.Optional });
}
也许根据你的面具你总是要去默认路线。所以只需删除默认映射。
答案 2 :(得分:0)
您可以尝试这样做:
public class HomeController : Controller
{
public ActionResult Index()
{
ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";
return RedirectToAction("About","Home");
}
public ActionResult About()
{
ViewBag.Message = "Your app description page.";
return View();
}
public ActionResult Contact()
{
ViewBag.Message = "Your contact page.";
return View();
}
}