C# 使用HtmlHelper.BeginForm扩展方法预先添加URL路径
我有一个现有的ASP.NET MVC 4应用程序,它使用视图中的方法。该站点现在将位于反向代理之后,该代理将在URL的路径部分添加一些字符。我希望为HtmlHelper创建一个扩展方法,允许我执行以下操作:C# 使用HtmlHelper.BeginForm扩展方法预先添加URL路径,c#,asp.net,asp.net-mvc,html-helper,html.beginform,C#,Asp.net,Asp.net Mvc,Html Helper,Html.beginform,我有一个现有的ASP.NET MVC 4应用程序,它使用视图中的方法。该站点现在将位于反向代理之后,该代理将在URL的路径部分添加一些字符。我希望为HtmlHelper创建一个扩展方法,允许我执行以下操作: @using (Html.BeginForm("ActionName", "MyControllerName", FormMethod.Post, new { @class = "my-class" })){ 并能够修改以下内容的输出: <form method="POST" act
@using (Html.BeginForm("ActionName", "MyControllerName", FormMethod.Post, new { @class = "my-class" })){
并能够修改以下内容的输出:
<form method="POST" action="/MyController/ActionName" class="my-class">
改为:
<form method="POST" action="/Some/Prepended/Path/MyController/ActionName" class="my-class">
您可以使用FormExtensions.BeginRouteForm方法来实现这一点
首先,在RouteConfig类中创建一条路由,如下所示:
routes.MapRoute(
name: "FormRoute",
url: "Some/Prepended/Path/{controller}/{action}"
);
http://localhost:57744/Some/Prepended/Path/YourController/YourAction
然后使用Html.BeginRouteForm
最后,您可以调用您的操作方法,如下所示:
routes.MapRoute(
name: "FormRoute",
url: "Some/Prepended/Path/{controller}/{action}"
);
http://localhost:57744/Some/Prepended/Path/YourController/YourAction
有关FormExtensions.BeginRouteForm方法的更多详细信息,请参阅以下链接: