Вместо WML генерируется XML
От: Jem2  
Дата: 03.08.05 12:45
Оценка:
Запускаю проэкт и в браузере вижу XML-файл.
Если запустить в WAP-браузере, то выдает ошибку: "нет содержания WML"
Вот код:

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.Mobile;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.MobileControls;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Text;
using System.Configuration;

namespace wapunit
{
    /// <summary>
    /// Summary description for _default.
    /// </summary>
    public class _default : System.Web.UI.MobileControls.MobilePage
    {
        protected System.Web.UI.MobileControls.Form Form1;

        private void Page_Load(object sender, System.EventArgs e)
        {
            // Put user code to initialize the page here
            GetDefaultPage();
        }

        private void GetDefaultPage()
        {
            string wml_begin    = ConfigSetting.start_deck;
            string wml_end        = ConfigSetting.end_deck;
            StringBuilder sb    = new StringBuilder();
            int timer            = Int32.Parse(ConfigSetting.GetVal("timer"));

            sb.Append(wml_begin);
            sb.Append("<card id=\"welcome\" title=\"Unitrade\">");            
            sb.Append("<onevent type=\"ontimer\">");
            sb.Append("<go href=\"CodePurchase.aspx\"/>");
            sb.Append("</onevent>");
            sb.Append("<timer value=\""+timer+"\"/>");
            sb.Append("<p align=\"center\">Welcome");
            sb.Append("</p>");
            sb.Append("</card>");
            sb.Append(wml_end);

            Response.ClearContent();
            Response.Clear();
            Response.ContentType = "text/vnd.wap.wml";
            Response.Write(sb.ToString());
            Response.End();

        }

        #region Web Form Designer generated code
        override protected void OnInit(EventArgs e)
        {
            //
            // CODEGEN: This call is required by the ASP.NET Web Form Designer.
            //
            InitializeComponent();
            base.OnInit(e);
        }

        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {    
            this.Load += new System.EventHandler(this.Page_Load);
        }
        #endregion
    }
}
Re: Вместо WML генерируется XML
От: Andir Россия
Дата: 04.08.05 09:22
Оценка:
Здравствуйте, Jem2, Вы писали:

J>Запускаю проэкт и в браузере вижу XML-файл.

J>Если запустить в WAP-браузере, то выдает ошибку: "нет содержания WML"
J>Вот код:

[skip]

Каждый WML должен выглядеть следующим образом:
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/dtd/wml_1.1.xml">
<wml>
    <card ...>...</card>
</wml>


По сути это и есть XML, специального формата. В коде же явно тег wml отсутствует.

C Уважением, Andir!
using( RSDN@Home 1.2.0 alpha r597 ) { /* Работаем */ }
Re[2]: Вместо WML генерируется XML
От: Andir Россия
Дата: 04.08.05 09:30
Оценка:
Здравствуйте, Andir, Вы писали:

A>В коде же явно тег wml отсутствует.


Ой, всё понял. Не заметил случайно что декларация из конфига берётся.
Тогда наверное стоит показать xml конечный. Код вроде в порядке.

C Уважением, Andir!
using( RSDN@Home 1.2.0 alpha r597 ) { /* Работаем */ }
Re[2]: Вместо WML генерируется XML
От: Аноним  
Дата: 04.08.05 09:53
Оценка:
Content-Type надо правильный выдавать. Например, почитайте здесь:
http://gethelp.devx.com/techtips/wireless_pro/10min/10min0400/10min0400.asp
--
VBStreets, Editor-in-Chief
http://blogs.gotdotnet.ru/personal/gaidar/

What is a rigorous definition of rigor?


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re[3]: Вместо WML генерируется XML
От: Andir Россия
Дата: 04.08.05 21:24
Оценка:
Здравствуйте, gaidar, Вы писали:

G>Content-Type надо правильный выдавать. Например, почитайте здесь:

G>http://gethelp.devx.com/techtips/wireless_pro/10min/10min0400/10min0400.asp

Если внимательно посмотреть на главное сообщение, то можно увидеть что в коде есть ContentType:

Response.ContentType = "text/vnd.wap.wml";


С Уважением, Andir!
using( RSDN@Home 1.2.0 alpha r597 ) { /* Работаем */ }
Re[3]: Вместо WML генерируется XML
От: Аноним  
Дата: 05.08.05 09:23
Оценка:
Здравствуйте, Andir, Вы писали:

A>Здравствуйте, Andir, Вы писали:


A>>В коде же явно тег wml отсутствует.


A>Ой, всё понял. Не заметил случайно что декларация из конфига берётся.

A>Тогда наверное стоит показать xml конечный. Код вроде в порядке.

A>C Уважением, Andir!


Да по ходу оно не XML выдает, а просто WML код. Такое подозрение, что не происходит интерпритации кода. Выплевывает исходный код WML.

Вот результат работы в эксплорере:


<?xml version="1.0" ?> 
  <!DOCTYPE wml (View Source for full doctype...)> 
- <wml>
- <card id="welcome" title="Unitrade" newcontext="false" ordered="true">
- <onevent type="ontimer">
  <go href="CodePurchase.aspx" sendreferer="false" method="get" /> 
  </onevent>
  <timer value="20" /> 
  <p align="center">Welcome to UNITRADE</p> 
  </card>
  </wml>


А вот результат в Wap браузере:


Not wml content :

[Content Preview]
<?xml version="1.0"?><!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"><wml><card id="welcome" title="Unitrade"><onevent type="ontimer"><go href="CodePurchase.aspx"></go></onevent><timer value="20"/><p align="center">Welcome to UNITRADE</p></card></wml>
[End]


Подскажите, плз, куда копать?
Re[4]: Вместо WML генерируется XML
От: Andir Россия
Дата: 05.08.05 09:36
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Да по ходу оно не XML выдает, а просто WML код. Такое подозрение, что не происходит интерпритации кода. Выплевывает исходный код WML.


Wml правильный, его опера открывает на Ура.
Подозрения:
1) попробуйте убрать Response.Clear() и Response.ClearContent().
2) Добавьте Response.Flush() перед Response.End().

С Уважением, Andir!
Re[5]: Вместо WML генерируется XML
От: Аноним  
Дата: 08.08.05 08:56
Оценка:
Здравствуйте, Andir, Вы писали:

A>Здравствуйте, Аноним, Вы писали:


А>>Да по ходу оно не XML выдает, а просто WML код. Такое подозрение, что не происходит интерпритации кода. Выплевывает исходный код WML.


A>Wml правильный, его опера открывает на Ура.

A>Подозрения:
A>1) попробуйте убрать Response.Clear() и Response.ClearContent().
A>2) Добавьте Response.Flush() перед Response.End().

A>С Уважением, Andir!



К сожалению и это не помогло.
Пробовал открыть WinWap'ом WML файлик (index.wml) с тем же наполнением:


<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card id="card1" title="My Wap Page"> 
<p>Hello world - this is my first wap card!</p> 
<p><a href="#card2">Go to the second card</a></p> 
</card> 
<card id="card2" title="Second Card"> 
<p>This is my second wap card!</p> 
<p><a href="#card1">Go back to the first card</a></p> 
</card> 
</WML>


результат тот же — выплевывает исходный WML
Re[6]: Вместо WML генерируется XML
От: Andir Россия
Дата: 08.08.05 09:17
Оценка:
Здравствуйте, Аноним, Вы писали:

А>К сожалению и это не помогло.

А>Пробовал открыть WinWap'ом WML файлик (index.wml) с тем же наполнением:

[skip]

Ну здесь всё просто, xml чувствителен к регистру и последний тег WML надо записать маленькими буквами.
На всякий случай проверил в том же WinWAP. Работает.

С Уважением, Andir!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.