Preusmeritev na APS.NET Mobilno formo?
2 naročnika
2 naročnika
Pozdravljeni.
Zanima me nekaj.
Kam bi moral to kodo na tej strani:
http://msdn.microsoft.com/en-us/library/fhhycabe.aspx
<script runat="server" language="c#">
public void Page_Load(Object sender, EventArgs e)
{
if (Request.Browser["IsMobileDevice"] == "true" )
{
Response.Redirect("MobileDefault.aspx");
}
else
{
Response.Redirect("DesktopDefault.aspx");
}
}
</script>
vstaviti, da bi mi preusmerjala na pravo formo ( se pravi če je računalnik na računalniško formo če ne pa na mobilno formo) sam sem mislil v Site.Mater vendar ne vem če je lahko tam .
Hvala lp
5 odgovorov
Mam pa še eno vprašanje kako narediti, da se s telefonam (andorid) povežem na lokalni IIS , da poskusim če stvar dela ? Lp
Res nobeden ne ve?
Zakaj mi sploh te kode ne prepozna ?
// Prepoznavanje mobilnika
public void Page_Loud(Object sender, EventArgs e)
{
if (Request.Browser["LogOnMobile.cshtml"] == "true")
{
Response.Redirect("LogOnMobile.cshtml");
}
else
{
Response.Redirect("LogOn.cshtml");
}
}
Je spisana ok, vendar če dam break point na njo gre kar mimo ne odpre spletna stran isto vedno ali je break point ali ne.
Tole je čisto odvisno, če delaš klasični ASP page al je MVC zadevca? Glede na to, da maš cshtml fajle predvidevam, da je MVC in bi bilo bolj pametno delati z "route-ami", ki jih definiras v Global.asax in potem na Layout.cshtml vmestiti kodo za prepoznavo. Me pa malo moti tale PageLoad, ki naj bi bil še iz klasičnega ASP-ja.
Še bolje bi bilo imeti en MasterController.cs, kjer vsi ostali controllerji dedujejo od njega. V njem pa override OnActionExecuting metode in v njej notri preverjaš iz kje prihaja request in redirectaš. Seveda če gre za MVC.
Še druga opcija je pa, da zadevo rešiš z AuthorizeAttribute..
Malo več kode bi pa vseeno rabu videt in dejansko definicijo, če gre za MVC ali klasiko.
Aja pa še to, meni osebno je veliko bolj všeč MVC, ker imaš lepo postrukturirano. Klasični asp je počasi out.. Razen vzdrževanja starih sistemov.
Tole si poinštaliraj pa si malo poglej.
Pozabil povedati, da sem stvar rešil:
3x Layourt.cshtml eden za normalno formo druga dva za mobilno katera se vežjo vsak na svoj .css. Dva za mobilno formo pa zato ker je eden css za vstopno stran kjer se loginam, drugi pa za stran kjer sem noter loginan katera sta malo drugačno narejena in morem met dva css-ja. Stvar deluje uredi.
Aja kako sem loči prepoznavanje mobilne forme in normalne:
ViewBag.Title = "Login";
Layout = Request.Browser.IsMobileDevice ? "~/Views/Shared/_LayoutMobile.cshtml"
: "~/Views/Shared/_Layout.cshtml";
string retUrl = "";
if (ViewContext.HttpContext.Request.Params["returnUrl"] != null)
{
retUrl =
ViewContext.HttpContext.Request.Params["returnUrl"];
}
}
Upam, da pride še komu prav.
Lp