繁体   English   中英

将参数从Silverlight传递到ASP.net

[英]Passing parameters from silverlight to ASP.net

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

我决定,如果可以实施排行榜,那就更好了,因此我在mySQL中创建了一个数据库,用于存储所有高分以及姓名和日期。 我已经创建了一些与ASP.net中的数据库的通信。 这行得通,我可以简单地在代码中插入并获取数据。

现在是时候将silverlight项目与ASP.net数据库通信链接起来了,因此我可以将用户名和得分作为变量发送到我的ASP.net代码中,然后将其上传到数据库中。 这就是我所需要的。 当然,必须有一种简便的方法来进行研究,但是我似乎在研究时找不到任何方法。

在此先感谢,劳埃德

首先,您需要将通用处理程序添加到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));

在这里,我使用Uri类将参数发送到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页面中使用了该名称。

所谓ASP.NET,是指ASP.NET Webforms应用程序吗?

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

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

您可以:

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

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

我更喜欢后一种方法。 第一次需要做更多的工作,但它也更通用,从长远来看,通常可以使代码更好。

尽管从技术上讲您可以使用JavaScript,但我不建议您使用。 如果不需要,为什么还要落后于技术?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM