Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用HtmlHelper.BeginForm扩展方法预先添加URL路径_C#_Asp.net_Asp.net Mvc_Html Helper_Html.beginform - Fatal编程技术网

C# 使用HtmlHelper.BeginForm扩展方法预先添加URL路径

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

我有一个现有的ASP.NET MVC 4应用程序,它使用视图中的方法。该站点现在将位于反向代理之后,该代理将在URL的路径部分添加一些字符。我希望为HtmlHelper创建一个扩展方法,允许我执行以下操作:

@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方法的更多详细信息,请参阅以下链接: