【问题标题】:Passing parameters from silverlight to ASP.net将参数从 silverlight 传递到 ASP.net
【发布时间】:2009-11-26 15:16:29
【问题描述】:

我用 Silverlight 制作了一个小游戏,记录用户在玩游戏时的得分。

我认为如果我可以实现排行榜会更好,所以我在 mySQL 中创建了一个数据库来存储所有高分以及姓名和日期。我在 ASP.net 中创建了一些与数据库的通信。这很有效,我可以简单地在代码中插入和获取数据。

现在是时候将 silverlight 项目与 ASP.net 数据库通信链接起来了,所以我可以将用户名和分数作为变量发送到我的 ASP.net 代码,然后它会将其上传到数据库。这就是我所需要的。肯定有一种简单的方法可以做到这一点,我只是在研究时似乎找不到任何方法。

提前致谢, 劳埃德

【问题讨论】:

    标签: c# asp.net silverlight web-applications


    【解决方案1】:

    首先,您需要将通用处理程序添加到您的 ASP.Net 项目中。

      public class Handler1 : IHttpHandler
    {
        public void ProcessRequest(HttpContext context)
        {
            string userName = context.Request["user"];
            int score = int.Parse(context.Request["score"]);
            //And store it in DB
        }
     }
    

    在您需要从 SilverLight 应用调用此处理程序后:

             string uri = HtmlPage.Document.DocumentUri.ToString();
    
            // Remove the web page from the current URI to get the root URI. 
             string   rootUri = uri.Remove(uri.LastIndexOf('/'),
             uri.Length - uri.LastIndexOf('/')); 
    
             string diggUrl = String.Format(rootUri + "/" + "test.ashx?user={0}&score={1}", "testuser", "234");
    
            // Initiate Async Network call to Digg
            WebClient diggService = new WebClient();
            diggService.DownloadStringAsync(new Uri(diggUrl));
    

    【讨论】:

      【解决方案2】:

      这里我使用 Uri Class 向 asp.net 发送参数,但你只能发送字符串格式。

      //这段代码写在Silverlight Button Click Event上。

      Uri myURI = new Uri(HtmlPage.Document.DocumentUri,String.Format("Report.aspx?brcd={0}&acc={1}&user={2}", Brcd, Acc, User)); HtmlPage.Window.Navigate(myURI, "_blank");
      

      以下代码是在 Asp.net page_load 或页面初始化事件上编写的

       Brcd = Request.QueryString["brcd"];// brcd value accept here.
       acc= Request.QueryString["ACC"];`
       user= Request.QueryString["User"];
      

      在上面的代码中,我们接受 asp.net 中的 silverlight 参数,但在 [] 括号中输入名称,因为它在 silverlight 页面中使用,因为它区分大小写。

      【讨论】:

        【解决方案3】:

        您所说的 ASP.NET 是指 ASP.NET Webforms 应用程序吗?

        如果是这样,ASP.NET Webforms 应用程序就是一种构建 UI 的方法。您需要一个 API,以便您的 Silverlight 应用程序以编程方式使用。为此,您可能需要考虑构建一个 ASP.NET Web 服务,它通过 HTTP 提供 API。

        【讨论】:

          【解决方案4】:

          从 Silverlight 应用程序向 Web 服务器发送数据需要什么,对吧?

          你可以:

          【讨论】:

            【解决方案5】:

            一个简单的方法是让您的 Silverlight 代码通过将信息编码到查询字符串中来创建一个 REST URL,并在服务器上调用一个 .aspx 页面。该页面不需要返回任何标记;它只会处理后端的东西并返回。

            或者,您可以从 Silverlight 向您的后端进行 Web 服务调用。

            我更喜欢后一种方法。第一次完成的工作要多一些,但它也更通用,从长远来看,通常会产生更好的代码。

            虽然从技术上讲您可以使用 JavaScript,但我不建议这样做;如果没有必要,为什么要在技术上倒退?

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2012-10-18
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2017-05-07
              相关资源
              最近更新 更多