Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在没有视图的情况下调用action方法_C#_Asp.net Mvc - Fatal编程技术网

C# 如何在没有视图的情况下调用action方法

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

我想在控制器中调用一个动作方法。但是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> @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>");