所以我有一个HomeController
,与Actions
一起访问它我必须输入 url.com/home/action 。
是否可以将此更改为 url.com/anothernamethatpointstohomeactually/action 等其他内容?
答案 0 :(得分:14)
我建议您使用属性路由,但当然这取决于您的方案。
newCombobox.SetValue(ComboBox.IsEnabledProperty, new Binding("HasAttachment") { Converter = new InverseBooleanConverter() });
可在[Route("prefix")]
public class Home : Controller {
[HttpGet("name")]
public IActionResult Index() {
}
}
有很多选项可以归属路由,有些样本:
url.com/prefix/name
答案 1 :(得分:1)
您可以通过修改路由配置来更改网址。 它有点像htaccess但不是真的。 https://docs.microsoft.com/en-us/aspnet/mvc/overview/older-versions-1/controllers-and-routing/creating-custom-routes-cs
另一种解决方案是创建页面并执行服务器重定向。
Server.Transfer
答案 2 :(得分:1)
使用控制器顶部的Route属性可以在整个控制器上定义路径。
[Route("anothernamethatpointstohomeactually")]
您可以阅读更多here。
答案 3 :(得分:1)
您可以在Routes
块中的Startup.Configure
方法中添加新的app.UseMvc(routes =>
:
routes.MapRoute(
name: "SomeDescriptiveName",
template: "AnotherNameThatPointsToHome/{action=Index}/{id?}",
defaults: new { controller = "Home"}
);
代码与ASP.NET MVC非常相似。
有关详细信息,请参阅Routing in ASP.NET Core。
下面是ASP.NET MVC(不是ASP.NET核心MVC)
您还可以在Route
中通过routes.MapRoute
添加新的RouteConfig
:
routes.MapRoute(
name: "SomeDescriptiveName",
url: "AnotherNameThatPointsToHome/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
请确保在定义Default
路线之前插入代码。
有关详细信息,请访问docs。