我正在创建一个ASP.NET MVC
应用程序,该应用程序将显示在WindowsPhone
控件中的iOS
,Android
,WebView
个应用程序或{{1}中的客户端中在其他网站。我希望以iFramed
应用程序的不同方式控制某些行为和样式,具体取决于请求我的网站的客户端。
我可以实现此目的的一种方法是通过ASP.NET
等标题传递此信息,并在需要的地方读取标题值。但我在想如果有一种干净的方式我可以在URL中传递这些信息。像
https://www.example.com/windowsphone/Manage/Index
https://www.example.com/ios/Manage/Index
并从我的代码中需要的URL中读取客户端类型。
如果ClientType=WindowsPhone
可以帮助我,我感到困惑。
答案 0 :(得分:0)
我能够通过以下方式实现,
func loadBooks() {
var query = PFQuery(className: "Books")
query.findObjectsInBackgroundWithBlock { (objects: [AnyObject]?, error: NSError?) -> Void in
if error == nil {
self.books.removeAll()
let bookObjects = objects as! [PFObject]
for (index, object) in enumerate(bookObjects) {
self.books.append(Book(pfBook: object))
}
}else if let secondMessage = error?.userInfo?["error"] as? String
where secondMessage == "The Internet connection appears to be offline." {
self.failedMessage(secondMessage)
self.activityIndicator.hidden = true
self.activityIndicator.stopAnimating()
}
dispatch_async(dispatch_get_main_queue()){
self.collectionView!.reloadData()
self.refreshControl.endRefreshing()
self.activityIndicator.stopAnimating()
}
}
}
我的ClientTypeConstraint如下所示
routes.MapRoute(
name: "Default",
url: "{clientType}/{controller}/{action}",
defaults: new { controller = "Home", action = "Index" },
constraints: new { clientType = new ClientTypeConstraint() });