繁体   English   中英

如何在没有Ajax的情况下将数据从View发送到Controller?

[英]How to send data from View to Controller without ajax?

现在,我通过使用以下方法调用控制器方法:

<a class="k-button" href="@Url.Action("ExportData", "Home")">ExportData</a>

工作正常,但我还需要在Controller中发送两个字符串,从中获取DateTime并使用它们从列表中获取数据。 使用Ajax非常简单,但是我该怎么做呢? 我之所以不能使用ajax,是因为Controller方法ExportData返回:

return File(csv, "text/csv", fileName);

由于某种原因,我无法使用Ajax下载任何内容。 同样,通过使用Url.Action,我可以发送一个参数,但不能发送更多参数。

编辑:另外,我需要从以下位置获取这些字符串:

<input class="k-in" style="width: 150px; padding: 0; font-size: 0.9em;" type="text" id="DateFrom" name="DateFrom"/>
<input class="k-in" style="width: 150px; padding: 0; font-size: 0.9em;" type="text" id="DateTo" name="DateTo" />

您可以在Action方法中像这样传递路由值

  <a class="k-button" href="@Url.Action("ExportData", "Home",new {p1="sa",p2="as"})">ExportData</a>

然后像这样在ExportData方法中获取这些数据

public ActionResult ExportData(string p1,string p2)
{
   ...
}

根据您的要求,制作一个这样的javascript函数

 function test(){
   var url=@Url.Action("ExportData", "Home");
   var p1="12";//now you can set this value by javascript 
   var p2="123";
   window.location.href = url + "?p1=" + p1 + "&p2=" + p2;//this will call you action method and pass you parameter.
 }

现在,您可以单击所需的按钮或锚标签来调用此功能。

function YourMethod(data) 
    {            
        window.location.href = "@Url.Action("ExportData", "Home")?id=" + data;                   
    }

您可以通过这种方式附加任意数量的参数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM