ASP.NET MVC在部分视图中使用javascript值
我有一个包含一些javascript的视图。javascript有一个回调函数,当我需要的数据准备好时(从indexeddb)调用该函数 这些数据,我想传递给一个局部视图-我该怎么做?我似乎不能使用ViewData,因为它会在页面呈现时过期(因此,在收到回调之前)。有什么想法吗?代码如下:ASP.NET MVC在部分视图中使用javascript值,javascript,asp.net,asp.net-mvc,razor,indexeddb,Javascript,Asp.net,Asp.net Mvc,Razor,Indexeddb,我有一个包含一些javascript的视图。javascript有一个回调函数,当我需要的数据准备好时(从indexeddb)调用该函数 这些数据,我想传递给一个局部视图-我该怎么做?我似乎不能使用ViewData,因为它会在页面呈现时过期(因此,在收到回调之前)。有什么想法吗?代码如下: <div> <script type="text/javascript"> var somecallback = myFunctionDefinedSomewh
<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>
var somecallback=myFunctionDefinedSomewhere();
somecallback.onsuccess=函数(evt){
console.log(“成功!”);
var iReallyNeedThisVariable=evt.id;
@ViewData[“iReallyNeedThisVariable”]=iReallyNeedThisVariable;
}
@对于(int i=0;i
您正在将服务器端代码与JavaScript混合使用。无法从JavaScript设置ViewBag
相反,您需要对控制器操作(或服务人员)进行ajaxpost/GET
调用,然后作为响应,获取PartialView
或JSON数据
,并在主视图中使用它
更新:
OP确认服务人员的获取事件支持AJAX调用。您正在将服务器端代码与JavaScript混合。无法从JavaScript设置
ViewBag
。相反,您需要对控制器操作进行ajaxpost/GET
调用,然后作为响应,获取PartialView或JSON数据
,并在主视图中使用它。我正在尝试避免任何服务器端代码-我使用serviceworkers在脱机时使站点工作不幸的是,您无法做到这一点。我不确定避免服务器端代码并在脱机时工作是什么意思。你能详细描述一下你的问题吗?因为即使您希望动态呈现partialview,也应该存在服务器命中。ServiceWorkers可以缓存任何“正常”http请求,并在浏览器脱机时将其提供给浏览器。它并不以同样的方式支持AJAX。此外,这完全是客户端的。我打开客户端indexeddb,并在客户端呈现页面。我只想延迟部分视图的渲染,直到我有一个到indexeddb的开放连接