来自 ViewData 列表的 JavaScript 数组 - Razor
本文关键字:数组 Razor JavaScript ViewData 列表 来自 | 更新日期: 2023-09-27 18:33:59
我在MVC3(aspx)中使用以下方法从ViewData生成一个包含列表的数组:
<script runat="server">
void RenderJavascriptHashArray (string listName, string hashName)
{
IEnumerable<KeyValuePair<int, string>> pairs = this.ViewData[listName] as IEnumerable<KeyValuePair<int, string>>;
Response.Write("var " + hashName + " = new Array();'n");
foreach (KeyValuePair<int, string> pair in pairs)
{
Response.Write(hashName + "[" + pair.Key.ToString() + "] = '"" + pair.Value + "'";'n");
}
}
</script>
<script>
<% this.RenderJavascriptHashArray("InfoURLs", "InfoURLs"); %>
</script>
在MVC5 Razor中,由于Response.Write,数组显示在屏幕上,有没有替代方法! 感谢您的建议。
试试这个,如果你在剃刀中,我认为你不需要回应。
@Html.Raw(RenderJavascriptHashArray("InfoURLs", "InfoURLs"))
@{
string RenderJavascriptHashArray (string listName, string hashName)
{
IEnumerable<KeyValuePair<int, string>> pairs = this.ViewData[listName] as IEnumerable<KeyValuePair<int, string>>;
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append("var " + hashName + " = new Array();'n");
foreach (KeyValuePair<int, string> pair in pairs)
{
sb.Append(hashName + "[" + pair.Key.ToString() + "] = '"" + pair.Value + "'";'n");
}
return sb.ToString();
}
}