0
我有一个视图,其中包含一些javascript。当我需要的数据准备就绪时(来自indexeddb),javascript会调用一个回调函数。ASP.NET MVC在部分视图中使用javascript值
这个数据,我想传递给一个局部视图 - 我该怎么做?我似乎无法使用ViewData,因为一旦页面呈现就会过期(因此,在收到回调之前)。有任何想法吗?代码在这里:
<div>
<script type="text/javascript">
var somecallback = myFunctionDefinedSomewhere();
somecallback.onsuccess = function(evt) {
console.log("Success!");
var iReallyNeedThisVariable = evt.id;
@ViewData["iReallyNeedThisVariable"] = iReallyNeedThisVariable;
}
</script>
@for (int i = 0; i < Model.MyCollection.Count; i++)
{
if (i == 0)
{
@Html.Partial("_MyPartialView", Model.MyCollection.ElementAt(i), new ViewDataDictionary { { "Stuff", true }, { "iReallyNeedThisVariable", @ViewData["iReallyNeedThisVariable"] } });
}
else
{
@Html.Partial("_MyPartialView", Model.MyCollection.ElementAt(i), new ViewDataDictionary { { "Stuff", false }, { "iReallyNeedThisVariable", @ViewData["iReallyNeedThisVariable"] } });
}
}
</div>
您正在使用JavaScript混合使用服务器端代码。你不能从JavaScript设置'ViewBag'。相反,您需要对“Controller Action”进行“AJAX POST/GET”调用,然后获得“PartialView或JSON数据”并在您的主视图中使用它。 – ramiramilu
我试图避免任何服务器端代码 - 即时消息使用服务工作者在离线时使站点工作 – user1202032
不幸的是,您不能这样做 –