ASP.NET MVC多语言处理中请求丢失或参数丢失

实现MVC多语言的blog:http://blog.csdn.net/Cooldiok/article/details/78313513

在项目中碰到了一个问题是:POST请求一个非多语言处理的[WithoutLocalization]函数A,而该函数在运行时又会调用其他需要多语言的函数B,这就会导致函数B里面和多语言有关的值都是默认值,并非是用户设定的值。

如果去掉[WithoutLocalization]属性后,则函数A在初次调用,经Localization处理后,请求就丢失了。这是因为函数A只接受POST请求,而Localization重定向的请求是GET的,所以定位不到函数A就丢失了。
如果去掉[WithoutLocalization]和[POST]属性,则重定向后还能找到函数A,但是原本传入的参数丢失了。

解决办法:
去掉函数A的[WithoutLocalization]和[POST]属性,在调用函数A的地方使用GET方法,并在URL中加入语言设定,使得Localization不做重定向的步骤。只做图中红圈部分的内容,这样函数B也能正确的进行多语言处理。
这里写图片描述

如果大家有更好的方法也欢迎分享。