我正在尝试在mvc中构建一个通用的导出操作。所以我为此写了一个控制器。
[AcceptVerbs(HttpVerbs.Post)]
public string Excel(FormCollection collection)
{
string dataUrl = collection["dataUrl"];
string filter = collection["filter"];
//Get data from dataUrl
...
}
我的问题是我希望通过 POST 将相同参数传递给其方法来从另一个控制器传输数据。
这是数据的示例方法
[AcceptVerbs(HttpVerbs.Post)]
public JsonResult List(FormCollection collection)
{
...
return Json(data);
}
提前致谢。
答案 0 :(得分:1)
为什么不将导出代码重构为实用程序类,然后从两个控制器中使用它?
答案 1 :(得分:0)
假设您必须将控制器调用到控制器,您可以像这样使用HttpWebRequest:
public void CallController()
{
var request = (HttpWebRequest)WebRequest.Create("http://yoursite.com/Excel");
request.Method = "POST";
using (var dataStream = request.GetRequestStream())
{
//write your data to the data stream
using (var response = (HttpWebResponse)request.GetResponse())
{
if (response.StatusCode == HttpStatusCode.OK || response.StatusCode == HttpStatusCode.TemporaryRedirect)
{
//work with the controller response
}
}
}
}
如果您可以将代码重构为两个控制器外部的类,则效率非常低。