gpt4 book ai didi

c# - 在 cshtml 页面内异步加载

转载 作者:太空狗 更新时间:2023-10-30 01:06:16 25 4
gpt4 key购买 nike

可以在 Razor 中使用 Task (System.Threading) 吗??

我正在尝试做的是:我有一个要异步填充的表。

看代码:

@{
Func<dynamic, object> preenche =
@<text>
<tr><td>oi1</td><td>oi2</td></tr>
</text>;
}

...
<tbody>
@Task.Factory.StartNew(() =>
{
foreach(Apontamento ap in Model.apontamentos)
{
preenche(ap);
}
})
</tbody>

输出就是这样:System.Threading.Tasks.Task

这可能吗?或者我可以只使用 Ajax 实现我想做的事情?

最佳答案

如果您希望页面立即呈现并出现,然后再发生一些事情(比如一个操作需要 5 秒才能完成),那么您可以通过执行以下操作让页面在数据可用时更新(更多关于 .getJSON 的信息)。

在您的Razor View 中,您可以添加一些 JavaScript:

<script type="text/javascript">
$.getJSON('LongRunningAsyncTask', function (result)
{
// Populate table or other actions with: result.Data
// ...
});
</script>

然后在您的 Controller 中,您将执行如下任务:

public JsonResult LongRunningAsyncTask()
{
// Show this is async and won't render straight away...
System.Threading.Thread.Sleep(5000);

// Build up our view model
var viewModel = new TestViewModel();

// Send back as a Json result
var result = new JsonResult();
result.Data = viewModel;
return Json(result, JsonRequestBehavior.AllowGet);
}

关于c# - 在 cshtml 页面内异步加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16063997/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com