从UrlHelper.Action生成的URL中排除UICulture字符串(例如:en-US)?

时间:2013-07-25 12:17:15

标签: c# .net asp.net-mvc-4

首先,我的测试网站网址是

http://localhost:51889/MVTS

尽管我的CurrentUICulture字符串不在上面的URL中,但是当我在Main.cshtml中声明@Url.Action("ActionOne","User")时,我的脚本标记中存在UI文化字符串。

<script type="text/javascript" src='/MVTS/en-US/User/ActionOne'></script>

我希望能够排除“en-US”,以便上面标记中的“src”如下所示:

<script type="text/javascript" src='/MVTS/User/ActionOne'></script>

任何人都可以告诉我如何实现这一目标吗?我一直在寻找,但尚未找到解决方案。

2 个答案:

答案 0 :(得分:1)

检查您的路线定义。可能你有一个带有{culture}等属性的规则。

您可以删除该属性,或者,如果您需要在应用程序的其他部分中删除该属性,则可以添加另一个没有文化的路径定义,并且代替Url.Action,您可以使用Url.RouteUrl(给出一个参数,给出路由定义的名称。)

答案 1 :(得分:0)

我的解决方案结果与众不同。事实证明,由于我的Controller位于名为“Admin”的“区域”中,因此将{lang}添加为

符合我的利益。
context.MapRoute(
                "Admin_default",
                "{lang}/Admin/{controller}/{action}/{id}",
                new { action = "Index", id = UrlParameter.Optional }
            );

虽然这解决了我遇到的问题,Fabio S给出的答案是对问题的正确解决方案。所以我将他的答案标记为正确答案。