Передача параметров из silverlight в ASP.net - PullRequest
0 голосов
/ 26 ноября 2009

Я сделал небольшую игру в серебряном свете, которая записывает оценки пользователей, пока они играют.

Я решил, что было бы намного лучше, если бы я мог реализовать таблицу лидеров, поэтому я создал базу данных в MySQL для хранения всех рекордов вместе с именами и датами. Я создал несколько сообщений для базы данных в ASP.net. Это работает, и я могу просто вставить и получить данные в коде.

Настало время связать проект silverlight с сообщениями базы данных ASP.net, поэтому я могу отправить имя пользователя и оценку в качестве переменных в мой код ASP.net, а затем он загрузит его в базу данных. Это все, что мне нужно. Конечно, должен быть простой способ сделать это, я просто не могу найти какие-либо способы исследования.

Заранее спасибо, Lloyd

Ответы [ 5 ]

3 голосов
/ 27 ноября 2009

Сначала вам нужно добавить Generic Handler в ваш проект 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));
1 голос
/ 13 апреля 2012

здесь я использовал класс 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"];

В приведенном выше коде мы принимаем параметр silverlight в asp.net, но в скобках [] ставим имя, как оно используется на странице silverlight, потому что оно чувствительно к регистру.

0 голосов
/ 26 ноября 2009

Что вам нужно для отправки данных на веб-сервер из приложения Silverlight, верно?

Вы можете:

0 голосов
/ 27 ноября 2009

Простой способ сделать это - заставить ваш код Silverlight создать URL-адрес REST, кодируя информацию в строку запроса и вызывая страницу ASPX на сервере. Страница не должна возвращать разметку; он просто обработает бэкэнд и вернется.

Кроме того, вы можете позвонить в веб-службу из Silverlight на ваш сервер.

Я предпочитаю последний подход. Это немного больше работы с первого раза, но это также более общее назначение и делает в целом лучший код в долгосрочной перспективе.

Хотя технически вы могли бы использовать JavaScript, я бы не советовал; зачем возвращаться в технику, если не нужно?

0 голосов
/ 26 ноября 2009

Под ASP.NET вы имеете в виду приложение ASP.NET Webforms?

Если это так, приложение ASP.NET Webforms - это метод создания пользовательского интерфейса. То, что вам нужно, это API, чтобы приложение Silverlight использовалось программно. Для этой цели вы можете рассмотреть возможность создания веб-службы ASP.NET, которая предоставляет API по HTTP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...