值未从一个控制器传递到另一个控制器

时间:2015-07-01 18:21:27

标签: c# asp.net

在两个独立的控制器之间传递数据。我的第一个文件中有以下内容:

public ActionResult Report(string sDate, string eDate)
{   
    var client = new WebClient();
    string avgRatesCos = String.Format(client.DownloadString("http://localhost/api/values/1?sBookingDate={0}&eBookingDate={1}"), sDate, eDate);
    string maxAvgRates = String.Format(client.DownloadString("http://localhost/api/values/2?sBookingDate={0}&eBookingDate={1}"), sDate, eDate);
    string minAvgRates = String.Format(client.DownloadString("http://localhost/api/values/3?sBookingDate={0}&eBookingDate={1}"), sDate, eDate);

在我的第二个文件/控制器中,'sBookingDate'和'eBookingDate'中的值显示为{0}和{1},而不是从第一个控制器传递的值:

public QueryResponse Get(int id, string sBookingDate, string eBookingDate)
{
    Console.WriteLine(sBookingDate, eBookingDate);
}

2 个答案:

答案 0 :(得分:2)

您的String.Formatclient.DownloadString操作已经倒退了。所以你实际上只是要求{0}作为参数...然后调用String.Format对动作/控制器的调用结果。

而不是

string avgRatesCos = String.Format(client.DownloadString("http://localhost/api/values/1?sBookingDate={0}&eBookingDate={1}"), sDate, eDate);

应该是

string avgRatesCos = client.DownloadString(String.Format("http://localhost/api/values/1?sBookingDate={0}&eBookingDate={1}", sDate, eDate));

答案 1 :(得分:0)

尝试

string minAvgRates = client.DownloadString("http://localhost/api/values/3?sBookingDate=" +sDate + "&eBookingDate="+eDate);