Перенос xsl-кода в asp.net / c # - PullRequest
       22

Перенос xsl-кода в asp.net / c #

0 голосов
/ 06 сентября 2011

Меня попросили перенести некоторый код в наше новое веб-приложение asp.net.но я крайне незнаком с asp.net.

Следующий блок кода обнаруживает пользовательское устройство и соответственно изменяет URL.Мне нужно сделать ту же логику, используя asp.net / c #, но я понятия не имею, с чего начать.

Любая помощь очень ценится.

    <xsl:variable name="useragent" select="lower-case(request:getHeader($request, 'user-agent'))"/>
<xsl:variable name="is_iphone" select="string(contains($useragent, 'iphone;') or contains($useragent, 'ipad;') or contains($useragent, 'ipod;'))"/>
<xsl:variable name="is_blackberry" select="string(contains($useragent, 'blackBerry'))"/>
<xsl:variable name="is_android" select="string(contains($useragent, 'android'))"/>
<xsl:variable name="application_url">
    <xsl:choose>
        <xsl:when test="$is_iphone = 'true'">
            <xsl:value-of select="f:getEnvParameter(concat('url.app.iphone.', $param_client), '')"/>
        </xsl:when>
        <xsl:when test="$is_blackberry = 'true'">
            <xsl:value-of select="f:getEnvParameter(concat('url.app.blackberry.', $param_client), '')"/>
        </xsl:when>
        <xsl:when test="$is_android = 'true'">
            <xsl:value-of select="f:getEnvParameter(concat('url.app.android.', $param_client), '')"/>
        </xsl:when>
        <xsl:otherwise>
            <xsl:value-of select="''"/>
        </xsl:otherwise>
    </xsl:choose>
</xsl:variable>
<xsl:variable name="application_url_exists" select="string-length(string($application_url)) != 0"/>

Ответы [ 2 ]

2 голосов
/ 06 сентября 2011

Примерно так:

//create your application url - for whatever you use this for after
            var applicationUrl = string.Empty;
            //Get the user agent
            var userAgent = Request.ServerVariables["HTTP_USER_AGENT"];
            //test the useragent and set application url
            if(userAgent.Contains("blackBerry"))
            {
                applicationUrl = "url.app.blackberry";
            } else if(userAgent.Contains("android"))
            {
                applicationUrl = "url.app.android";
            }...etc

Затем используйте ваш applicationUrl, однако вам потребуется позже ... предположительно, какое-то перенаправление или другое ...

1 голос
/ 06 сентября 2011

Нечто подобное должно помочь вам в этом. Если вы можете предоставить подробную информацию о том, как объединить URL, я обновлю свой ответ:

В зависимости от того, изменяется ли вообще «приложение», это может быть самый простой способ:

string applicationUrl = String.Format("mysiteurl.app.{0}", Request.UserAgent.ToLower());

Если вам нужно выполнить дальнейшие манипуляции с путем на основе пользовательского агента, вы можете сделать что-то вроде этого:

string userAgentPath = String.Empty;

switch (Request.UserAgent.ToLower())
{
    case "iphone":
        userAgentPath = "app.iphone";
        break;
    case "blackberry":
        userAgentPath = "app.blackberry";
        break;
    case "android":
        userAgentPath = "app.android";
        break;
}

string applicationUrl = String.Format("mysiteurl.{0}", userAgentPath);
...