代码之家  ›  专栏  ›  技术社区  ›  Lloyd Powell binku

将参数从Silverlight传递到ASP.NET

  •  0
  • Lloyd Powell binku  · 技术社区  · 15 年前

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

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

    现在是时候将Silverlight项目与ASP.NET数据库通信链接起来了,因此我可以将用户名和分数作为变量发送到我的ASP.NET代码中,然后它将把它上载到数据库中。这就是我所需要的。当然,要做到这一点必须有一个简单的方法,我只是在研究时似乎找不到任何方法。

    事先谢谢, 劳埃德

    5 回复  |  直到 13 年前
        1
  •  3
  •   cromacl    15 年前

    首先,您需要向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
  •  1
  •   Harshal    13 年前

    在这里,我使用uri类将参数发送到asp.net,但只能发送字符串格式。

    //此代码写在Silverlight按钮单击事件上。

    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页加载或页初始化事件上

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

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

        3
  •  0
  •   Adam Ralph    15 年前

    对于ASP.NET,您的意思是ASP.NET WebForms应用程序吗?

    如果是这样,ASP.NET WebForms应用程序就是一种构建UI的方法。您需要的是一个API,使您的Silverlight应用程序能够进行编程。为此,您可能需要考虑构建一个ASP.NET WebService,它通过HTTP提供API。

        4
  •  0
  •   Rubens Farias    15 年前

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

    你可以:

        5
  •  0
  •   RickNZ    15 年前

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

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

    我更喜欢后者。第一次完成的工作要多一些,但它也是更通用的目的,从长远来看,它可以使代码总体上更好。

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