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

本文关键字:字符串 UICulture 例如 en-US 排除 Action UrlHelper URL | 更新日期: 2023-09-27 18:24:49

首先,我的测试网站URL是

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>

谁能告诉我怎样才能做到这一点吗?我已经找了一段时间了,还没有找到解决方案。

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

检查您的路线定义。可能您有一个具有类似{culture}的属性的规则。

您可以删除该属性,或者,如果您在应用程序的其他部分需要它,您可以添加另一个不带区域性的路由定义,并且可以使用Url.RouteUrl(作为参数,提供路由定义的名称)来代替Url.Action

我的解决方案是不同的。事实证明,由于我的控制器位于一个名为"Admin"的"Area"中,因此将{lang}添加为符合我的利益

context.MapRoute(
                "Admin_default",
                "{lang}/Admin/{controller}/{action}/{id}",
                new { action = "Index", id = UrlParameter.Optional }
            );

虽然这解决了我的问题,但法比奥·S给出的答案是对所问问题的正确解决方案。因此,我认为他的答案是正确的。