0

我有一个现有的 ASP.NET MVC 4 应用程序,它在视图中使用HtmlHelper.BeginForm方法。该站点现在将位于反向代理后面,该代理会将一些字符添加到 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">
4

1 回答 1

0

您可以使用FormExtensions.BeginRouteForm方法来实现这一点。

RouteConfig首先,在类中创建一个路由,如下所示:

    routes.MapRoute(
    name: "FormRoute",
    url: "Some/Prepended/Path/{controller}/{action}"
    );

然后使用Html.BeginRouteForm

@using (Html.BeginRouteForm("FormRoute", new { }, 
         FormMethod.Post, new { @class = "my-class" })){}

最后,您可以调用您的操作方法,如下所示:

http://localhost:57744/Some/Prepended/Path/YourController/YourAction

有关 FormExtensions.BeginRouteForm 方法的更多详细信息,请参见以下链接: http: //msdn.microsoft.com/en-us/library/dd505047 (v=vs.118).aspx

于 2014-01-31T02:28:24.323 回答