我在asp.net c#中工作。我有一个母版页,其中包含HTML锚标记,可以在点击时更改网站的文化。
<a id="LinkLanguage" runat="server" href="javascript:void(0)"><asp:Literal ID="langltrl" runat="server" Text="<%$ Resources:skin, Français %>" /></a>
要处理点击事件,我采取以下方式:
<script type="text/javascript">
$("#LinkLanguage").click(function (e) {
e.preventDefault();
$.ajax({
type: "POST",
url: "Default.aspx/LinkLanguage_Click",
contentType: 'application/json;charset=utf-8',
dataType:'json',
success: function () { location.reload(); },
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(xhr.responseText);
alert(thrownError);
}
});
});
</script>
并且正在调用以更改文化语言的Web方法(Default.aspx / LinkLanguage_Click)按以下方式工作:
if (HttpContext.Current.Session["application.language"] != null)
{
if (HttpContext.Current.Session["application.language"].ToString() == "en-CA")
{
HttpContext.Current.Session["application.language"] = "fr-CA";
}
else
{
HttpContext.Current.Session["application.language"] = "en-CA";
}
}
}
现在,我的问题出在其中一个内容页面上,我想根据条件更改语言。如何调用语言更改锚标记(LinkLanguage)单击事件?
以下代码位于内容页面中:
if (Request.QueryString["Language"] == "FR")
{
// Want to change language here
}
如果我在这里分配会话,即
HttpContext.Current.Session["application.language"] = "fr-CA";
它需要刷新,如果我执行response.redirect()重新加载页面,它会将错误页面重定向到太多时间。
我怎样才能让它发挥作用,请帮忙。感谢