繁体   English   中英

ASP.NET MVC在部分视图中使用javascript值

[英]ASP.NET MVC Use javascript value in partial view

我有一个带有一些javascript的视图。 当我需要的数据准备就绪(来自indexeddb)时,javascript具有一个回调函数。

我想将此数据传递给局部视图-我该怎么做? 我似乎无法使用ViewData,因为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(或Service Workers )进行AJAX POST/GET调用,然后作为响应,获取PartialViewJSON Data并在主视图中使用它。

更新: OP确认Service Worker的Fetch事件支持AJAX调用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM