【问题标题】:Value from ASP MVC controller to Silverlight textbox从 ASP MVC 控制器到 Silverlight 文本框的值
【发布时间】:2011-04-16 04:53:27
【问题描述】:

有没有办法将单个字符串值从 ASP MVC 控制器传递到 silverlight 文本框?

【问题讨论】:

    标签: asp.net asp.net-mvc-2 silverlight-3.0


    【解决方案1】:

    您可以按如下方式使您的类型可编写脚本:

    [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 更改为 &lt;%: ViewData["Text"] %&gt; .

    【讨论】:

    • 谢谢。我也可以通过设置 initparm 值来做到这一点,但这似乎是一种更好的方法。
    猜你喜欢
    • 1970-01-01
    • 2015-08-08
    • 1970-01-01
    • 1970-01-01
    • 2011-01-08
    • 1970-01-01
    • 1970-01-01
    • 2015-04-01
    • 2013-07-14
    相关资源
    最近更新 更多