Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.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# 带有页面重定向的asp.net MVC问题中的全球化_C#_Asp.net Mvc_Globalization - Fatal编程技术网

C# 带有页面重定向的asp.net MVC问题中的全球化

C# 带有页面重定向的asp.net MVC问题中的全球化,c#,asp.net-mvc,globalization,C#,Asp.net Mvc,Globalization,基本控制器 public class CultureController : Controller { public ActionResult SetCulture(string culture) { HttpContext.Session["culture"] = culture return RedirectToAction("Index", "Home"); } } _

基本控制器

public class CultureController : Controller    
{
        public ActionResult SetCulture(string culture)
        {
            HttpContext.Session["culture"] = culture
            return RedirectToAction("Index", "Home");
        }        
}
_Layout.cshtml文件中的操作链接,适用于所有视图

<li><%= Html.ActionLink("French", "SetCulture", new {controller = "Culture", culture = "fr-FR"})%></li>
<li><%= Html.ActionLink("Spanish", "SetCulture", new {controller = "Culture", culture = "es-ES"})%></li>
  • 它的工作和改变文化的预期

    但我的问题是,每当我改变语言/文化时,它就会重定向到主页/索引页

    假设我在注册页面上,并且我想更改区域性,它不应该将我重定向到主页/索引页面,相反,我希望保持在同一页面上。这怎么可能

    提前谢谢你们


    请提供帮助。

    您可以重定向到同一页面。我相信,重新加载页面是必要的,因为当前页面上的所有资源都需要根据文化进行更新。您可以使用
    URLreferer.AbsoluteUri
    。做一些类似于:

    public ActionResult SetCulture(string culture)
    {
            HttpContext.Session["culture"] = culture;
            //all your logic
            return Redirect(Request.UrlReferrer.AbsoluteUri);
    }   
    

    如果希望保持在同一页面上,请使用ajax将区域性值发送到控制器。这比试图重定向回当前页面并重新呈现视图要有效得多

    在布局中,按以下方式生成链接:

    <a href="#" class="setculture" data-culture="fr-FR">French</a>
    <a href="#" class="setculture" data-culture="es-ES">Spanish</a>
    
    然后用
    [HttpPost]
    装饰您的方法(更改数据以使帖子更合适),并删除
    返回重定向操作()语句


    注意:您也可以从该方法返回一些内容,如成功消息,并根据需要在当前视图中显示它。

    如果您希望保持在同一页面上,请使用ajax调用该方法。嗯……您能给我举个例子吗?对不起,我说不出话来。非常感谢你,斯蒂芬先生。
    <script>
      var url = '@Url.Action("SetCulture", "Culture")';
      $('.setculture').click(function() {
        var culture = $(this).data('culture');
        $.post(url, { culture: culture }, function(data) {
    
        });
      });
    </script>