有没有办法将单个字符串值从ASP MVC控制器传递给silverlight文本框?
答案 0 :(得分: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"] %>
。