在URL ASP.NET中传递参数

时间:2015-08-25 23:09:52

标签: asp.net asp.net-mvc routes

我正在创建一个ASP.NET MVC应用程序,该应用程序将显示在WindowsPhone控件中的iOSAndroidWebView个应用程序或{{1}中的客户端中在其他网站。我希望以iFramed应用程序的不同方式控制某些行为和样式,具体取决于请求我的网站的客户端。

我可以实现此目的的一种方法是通过ASP.NET等标题传递此信息,并在需要的地方读取标题值。但我在想如果有一种干净的方式我可以在URL中传递这些信息。像

这样的东西

https://www.example.com/windowsphone/Manage/Index
https://www.example.com/ios/Manage/Index

并从我的代码中需要的URL中读取客户端类型。 如果ClientType=WindowsPhone可以帮助我,我感到困惑。

1 个答案:

答案 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() });