【发布时间】:2011-04-16 04:53:27
【问题描述】:
有没有办法将单个字符串值从 ASP MVC 控制器传递到 silverlight 文本框?
【问题讨论】:
标签: asp.net asp.net-mvc-2 silverlight-3.0
有没有办法将单个字符串值从 ASP MVC 控制器传递到 silverlight 文本框?
【问题讨论】:
标签: asp.net asp.net-mvc-2 silverlight-3.0
您可以按如下方式使您的类型可编写脚本:
[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"] %> .
【讨论】: