Значение из контроллера ASP MVC в текстовое поле Silverlight - PullRequest
0 голосов
/ 16 апреля 2011

Есть ли способ передать одиночное строковое значение из контроллера ASP MVC в текстовое поле silverlight?

1 Ответ

0 голосов
/ 16 апреля 2011

Вы можете сделать свой тип сценариев следующим образом:

[ScriptableType]
public partial class MainPage : UserControl
{

    public MainPage()
    {
        InitializeComponent();

        HtmlPage.RegisterScriptableObject("MainPage", this);
    }

    [ScriptableMember]
    public string Text
    {
        get { return TextBox1.Text; }
        set { TextBox1.Text = value; }
    }

}

Теперь у вас есть доступ к свойству MainPage.Text.

<script type="text/javascript">
    Silverlight.createObjectEx({
        source: '/clientbin/journal.web.administration.xap',
        parentElement: document.getElementById('SilverlightPlaceHolder'),
        id: 'SilverlightPlugin',
        properties: {
            version: '4.0.60129.0'
        },
        events: {
            onLoad: function () {
                var host = document.getElementById('SilverlightPlugin');
                if (host != null)
                    host.content.MainPage.set_Text('@ViewBag.Text');
            }
        }
    });
</script>

И, наконец, верните строку из действия следующим образом:

public ActionResult Index()
{
    ViewBag.Text = "Some Text";

    return View("Index");
}

Обновление: Если вы используете ASP.NET MVC 2, вам нужно изменить ViewBag.Text на ViewData ["Text"] и в разметке изменить @ViewBag.Textдо <%: ViewData["Text"] %>.

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