Raj*_*iya 1 routes route-provider asp.net-core asp.net-core-2.0 nopcommerce-4.0
我想从RouteCollection中删除现有路线,并想通过插件在nopCommerce 4.00中添加具有相同路线名称的新路线
现有路线名称:
//home page
routeBuilder.MapLocalizedRoute("HomePage", "",
new { controller = "Home", action = "Index" });
Run Code Online (Sandbox Code Playgroud)
我想用替换
routeBuilder.MapLocalizedRoute("HomePage", "",
new { controller = "CustomPage", action = "Homepage" });
Run Code Online (Sandbox Code Playgroud)
我尝试了几种方法,但没有任何运气。
就我而言,我必须替换robots.txt一代人。我在插件中创建了一个新的公共控制器,然后将原始操作复制到此处:
public class MiscCommonController : BasePublicController
{
#region Fields
private readonly ICommonModelFactory _commonModelFactory;
#endregion Fields
#region Ctor
public MiscCommonController(
ICommonModelFactory commonModelFactory
)
{
this._commonModelFactory = commonModelFactory;
}
#endregion Ctor
#region Methods
//robots.txt file
//available even when a store is closed
[CheckAccessClosedStore(true)]
//available even when navigation is not allowed
[CheckAccessPublicStore(true)]
public virtual IActionResult RobotsTextFile()
{
var robotsFileContent = _commonModelFactory.PrepareRobotsTextFile();
return Content(robotsFileContent, MimeTypes.TextPlain);
}
#endregion Methods
}
Run Code Online (Sandbox Code Playgroud)
之后,我RouteProvider为插件创建了一个,然后将原始路由替换为自己的路由。
public partial class RouteProvider : IRouteProvider
{
/// <summary>
/// Gets a priority of route provider
/// </summary>
public int Priority => -1;
/// <summary>
/// Register routes
/// </summary>
/// <param name="routeBuilder">Route builder</param>
public void RegisterRoutes(IRouteBuilder routeBuilder)
{
Route route = null;
foreach (Route item in routeBuilder.Routes)
{
if (item.Name == "robots.txt")
{
route = item;
break;
}
}
if (route != null) routeBuilder.Routes.Remove(route);
routeBuilder.MapRoute(
"robots.txt",
"robots.txt",
new { controller = "MiscCommon", action = "RobotsTextFile" }
);
}
}
Run Code Online (Sandbox Code Playgroud)
就这样。
完成此实现后,路由工作正常,并且get请求到达了我自己的控制器中,这就像原始控制器一样。
现在,我可以用自己的逻辑替换生成逻辑。
希望对您有所帮助。
| 归档时间: |
|
| 查看次数: |
1057 次 |
| 最近记录: |