and*_*emw 4 c# asp.net asp.net-mvc asynchronous razor
它可以在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>
Run Code Online (Sandbox Code Playgroud)
输出就是这样: System.Threading.Tasks.Task
可能吗?或者我可以使用Ajax做我想做的事情?
如果您希望页面呈现并立即显示,然后稍后会发生某些事情(比如操作需要5秒钟才能完成),那么您可以通过执行此类操作来获取数据可用时更新的页面(有关的更多信息). getJSON).
在Razor视图中,您可以添加一些JavaScript:
<script type="text/javascript">
$.getJSON('LongRunningAsyncTask', function (result)
{
// Populate table or other actions with: result.Data
// ...
});
</script>
Run Code Online (Sandbox Code Playgroud)
然后在你的控制器中你将有这样的任务:
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);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3145 次 |
| 最近记录: |