如何从视图中调用异步方法?
How to call an asynchronous method from a view?
我在具有 id 参数的控制器中有一个异步方法。在我看来,我想要一个按钮,当单击它时,它会将 @document.SubmissionId
变量传递给函数并执行它。我怎样才能做到这一点?这是我目前所拥有的:
控制器
private async Task<ActionResult> onPostSaveImage(string id){}
查看
<input type="button" value="Send Images" class="btn btn-xs btn-outline-primary" onclick="location.href='@Url.Action("onPostSaveImage", "ICRDocumentPending")?id=' + @document.SubmissionId" />
仅使用 async
签署一个方法不足以在从视图调用时异步工作。有必要从 System.Web.Mvc.AsyncController
派生您的控制器 class,它实现了 IAsyncController
接口。代码将变成如下所示:
public class ICRDocumentPendingController : AsyncController
{
public async Task<ActionResult> onPostSaveImage(string id)
{
return await Task<ActionResult>.Factory.StartNew(() =>
{
/* some code */
//...
return View("ViewName", (object)id);
});
}
//...
}
查看代码:
<input type="button" value="Send Images"
class="btn btn-xs btn-outline-primary"
onclick="location.href='@Url.Action("onPostSaveImage", "ICRDocumentPending", new { id = document.SubmissionId }))'" />
我在具有 id 参数的控制器中有一个异步方法。在我看来,我想要一个按钮,当单击它时,它会将 @document.SubmissionId
变量传递给函数并执行它。我怎样才能做到这一点?这是我目前所拥有的:
控制器
private async Task<ActionResult> onPostSaveImage(string id){}
查看
<input type="button" value="Send Images" class="btn btn-xs btn-outline-primary" onclick="location.href='@Url.Action("onPostSaveImage", "ICRDocumentPending")?id=' + @document.SubmissionId" />
仅使用 async
签署一个方法不足以在从视图调用时异步工作。有必要从 System.Web.Mvc.AsyncController
派生您的控制器 class,它实现了 IAsyncController
接口。代码将变成如下所示:
public class ICRDocumentPendingController : AsyncController
{
public async Task<ActionResult> onPostSaveImage(string id)
{
return await Task<ActionResult>.Factory.StartNew(() =>
{
/* some code */
//...
return View("ViewName", (object)id);
});
}
//...
}
查看代码:
<input type="button" value="Send Images"
class="btn btn-xs btn-outline-primary"
onclick="location.href='@Url.Action("onPostSaveImage", "ICRDocumentPending", new { id = document.SubmissionId }))'" />