从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>
谁能告诉我怎样才能做到这一点吗?我已经找了一段时间了,还没有找到解决方案。
检查您的路线定义。可能您有一个具有类似{culture}
的属性的规则。
您可以删除该属性,或者,如果您在应用程序的其他部分需要它,您可以添加另一个不带区域性的路由定义,并且可以使用Url.RouteUrl
(作为参数,提供路由定义的名称)来代替Url.Action
。
我的解决方案是不同的。事实证明,由于我的控制器位于一个名为"Admin"的"Area"中,因此将{lang}添加为符合我的利益
context.MapRoute(
"Admin_default",
"{lang}/Admin/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
虽然这解决了我的问题,但法比奥·S给出的答案是对所问问题的正确解决方案。因此,我认为他的答案是正确的。