渲染()之前的ASP.NET执行函数

时间:2011-12-17 14:30:20

标签: asp.net url seo render

最后我找到了一些关于如何从aspx页面调用函数的解决方案,我需要制作动态网址。

我在Google上搜索了几个星期,但我没有找到如何根据当前语言环境制作动态路由,如:

site.com/en/home - when CurrentCulture is en-EN and
site.com/fr/home - When CurrentCulture is fr-FR.

我找到了一个解决方案,我从aspx调用函数,检查CurrentCulture并打印一个字符串。

 <%@ Import Namespace="System.Globalization" %>
 <%@ Import Namespace="System.Threading" %>
<script runat="server">
void Demo() {

    CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture;

    string ime = currentCulture.ToString();

    Response.Write(ime);
}</script>

在同一个aspx页面上我有

<a href="<% Demo(); %>/default.aspx">CLICK</a>

但是现在我的问题在于“在页面底部移动JavaScript,在表单标记之后”类。在调试模式下,我注意到了

protected override void Render(HtmlTextWriter writer)

我的班级,在Demo()函数之前运行....

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

不要直接调用函数中的Response.Write,而是让它返回一个字符串并将其放在需要的位置。

如果您只需要调用该功能,则可以放弃该结果。您可以从被覆盖的Render函数调用该函数:

功能:

public string Demo() {

    CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture;

    string ime = currentCulture.ToString();

    return ime;
}

protected override void Render(HtmlTextWriter writer)
{
  Demo();
  // rest of code
}

标记:

// .NET 4.0
<a href="<%: Demo() %>/default.aspx">CLICK</a>

// .NET < 4.0
<a href="<%= Demo() %>/default.aspx">CLICK</a>