C# 如何在没有视图的情况下调用action方法
我想在控制器中调用一个动作方法。但是actonmethod没有任何观点 我有这个:C# 如何在没有视图的情况下调用action方法,c#,asp.net-mvc,C#,Asp.net Mvc,我想在控制器中调用一个动作方法。但是actonmethod没有任何观点 我有这个: <div class="col-lg-6 col-md-8 col-sm-10 "> <a href="@Url.Action("GeneratePDFFFromHtml", "Product")" class="btn btn-primary enabled"><i class="fa fa-fw fa-check"></i> @R
<div class="col-lg-6 col-md-8 col-sm-10 ">
<a href="@Url.Action("GeneratePDFFFromHtml", "Product")" class="btn btn-primary enabled"><i class="fa fa-fw fa-check"></i> @Resources.Action.Navigation.GeneratePDF </a>
</div>
尝试使用System.Web.Mvc.EmptyResult,或使用重定向到同一页面
System.Web.Mvc.RedirectResult.如果您想基于按钮/链接完成一些工作,为什么不使用ajax调用呢 例如:
<div class="col-lg-6 col-md-8 col-sm-10 ">
<button onclick=GeneratePdf('@Model.DesignId', <string data>) class="btn btn-primary enabled"><i class="fa fa-fw fa-check"></i> @Resources.Action.Navigation.GeneratePDF </button>
</div>
此外,这将是异步的,因此您可能需要向用户发出一些通知,说明某些操作正在像微调器一样进行。更简单的方法是对控制器使用路由、路由属性,如下所示 在控制器中,只需确定所需的路由并添加它。我用过ImportExport 在cshtml页面中,只需按如下方式调用此路径
<form enctype="multipart/form-data" method="post" action="~/api/ImportExport/GeneratePDF" id="frmGenerate" novalidate="novalidate" class="form-horizontal">
.....
.....
谢谢安迪·科内耶夫!!!您的示例代码帮助我解决了我一整天都在努力解决的问题。在没有刷新/查看的情况下运行代码块函数后,我使用了您的代码(并稍微修改了它)返回
return Content("<script type='text/javascript'>window.history.back();</script>");
返回内容(“window.history.back();”;
我知道这确实很旧,但希望您能看到这一点。考虑将其命名为
generatePDFromHTML
。您尝试过void吗?“但是操作方法没有视图”
-那么它有什么功能?操作的结果应该是什么?如果不想返回操作结果,请将其返回类型设为void
[HttpPost]
public void GeneratePDFFFromHtml(string designId, string strData)
{
SubmittedForm sf = new SubmittedForm();
string schema = requestSchema;
customer_DbConnection db = new customer_DbConnection();
RenderFormController renderController = new RenderFormController();
renderController.GeneratePdf(strData, db, sf);
//return RedirectToAction(model.DesignId, "Prdocut/Edit");
}
[Area("Exporting")]
[Route("api/ImportExport")]
public class ImportExportController : Controller
{
............
[Route("GeneratePDF")]
[HttpPost]
public void GeneratePDFFFromHtml(string designId, string strData)
{
SubmittedForm sf = new SubmittedForm();
string schema = requestSchema;
customer_DbConnection db = new customer_DbConnection();
RenderFormController renderController = new RenderFormController();
renderController.GeneratePdf(strData, db, sf);
//return RedirectToAction(model.DesignId, "Prdocut/Edit");
}
.......
<form enctype="multipart/form-data" method="post" action="~/api/ImportExport/GeneratePDF" id="frmGenerate" novalidate="novalidate" class="form-horizontal">
.....
return Content("<script type='text/javascript'>window.history.back();</script>");