سؤال

نخطط لتنفيذ موقع WAP باستخدام ASP.NET-MVC.

هل أي شخص أي تجارب لهذا؟ هل هناك أي gotchas؟

سنقوم أيضا بتنفيذ موقع ويب "قياسي" للمتصفحات. هل سيكون من الممكن الحصول على مجموعة واحدة من النماذج وحدات التحكم، ولديها مجرد وجهات نظر منفصلة لكل موقع؟

هل كانت مفيدة؟

المحلول

من الممكن أن يكون لديك في معظمها مجموعة واحدة من النماذج وحدات التحكم. طريقة القيام بذلك ستكون من خلال تنفيذ مشغل الموضوعات / القسمة التالية. [دعمها: [1] أيد الخنزير الحل الخاص بي على رأس محرك موضوعي / قالب.

الانحراف الرئيسي عن مصدر المقالات في ملف Global.asax.cs حيث تحتاج إلى إضافة الأسطر التالية من التعليمات البرمجية:

protected void Application_BeginRequest(Object Sender, EventArgs e)
{
  SetTheme();
}
//this will set the responses Content Type to xhtml and is necessary as C# sends the WML response header
protected void Application_PreSendRequestHeaders(Object Sender, EventArgs e)
{
  if (this.Context.Items["themeName"].ToString() == "xhtml")
  {
    this.Context.Response.ContentType = "application/vnd.wap.xhtml+xml";
  }
}

private void SetTheme()
{
  //set the content type for the ViewEngine to utilize. 

            HttpContext context = this.Context;
            MobileCapabilities currentCapabilities = (MobileCapabilities)context.Request.Browser;
            String prefMime = currentCapabilities.PreferredRenderingMime;

            string accept = context.Request.ServerVariables["HTTP_ACCEPT"];
            context.Items.Remove("theme");
            context.Items.Remove("themeName");

            if (accept.Contains("application/vnd.wap.xhtml+xml"))
            {
                context.Items.Add("themeName", "xhtml");
            }
            else if (prefMime == "text/vnd.wap.wml")
            {
                context.Items.Add("themeName", "WAP");
            }
            if (!context.Items.Contains("themeName"))
            {
                context.Items.Add("themeName", "Default");
            }
        }

أعلم أنني اضطررت إلى إجراء تغييرات على رمز لجعلها متوافقة مع MVC 1، لكنني لا أستطيع أن أتذكر التغييرات الدقيقة. المشكلة الرئيسية الأخرى التي أدت فيها تصحيح الناتج. بالنسبة إلى ذلك، استخدمت Firefox بتمديد ([Server Agent Solutioner] [2]) لقد تغيرت لإضافة أنواع قبول ذلك.

بالنسبة إلى WAP2 / XHTML1.2 أنواع قبول هي: النص / HTML، والتطبيق / vnd.wap.xhtml + XML، تطبيق / XHTML + XML، التطبيق / XML؛ Q = 0.9،/؛ س = 0.8

من الواضح أنك تحتاج إلى صفحات MasterPage وصفحات المحتوى للالتزام ب WML أو XHTML1.2

[1]: http://frugalcoder.us/post/2008/11/13/aspnet-mvc-theming.aspx. ثيمين الدعم

[2]: http://chrispederick.com/work/user-agent-switcher/ وكيل المستخدم الجلاد

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top