ASP .NET WEB APIによって返されるファイルの名前を設定します。現在、URLで渡されているパラメータの名前で返されます。しかし、私はABC.JSONASP .NET Web APIによって返されるファイル名を設定する
public class NewTestController : ApiController
{
public string Getdetails([FromUri] string[] id)
{using (OracleConnection dbconn = new OracleConnection("DATA SOURCE=J;PASSWORD=C;PERSIST SECURITY INFO=True;USER ID=T"))
{
var inconditions = id.Distinct().ToArray();
var srtcon = string.Join(",", inconditions);
DataSet userDataset = new DataSet();
var strQuery = @"SELECT
* from STPR_STUDY where STPR_STUDY.STD_REF IN (" + srtcon + ")";
OracleCommand selectCommand = new OracleCommand(strQuery, dbconn);
OracleDataAdapter adapter = new OracleDataAdapter(selectCommand);
DataTable selectResults = new DataTable();
adapter.Fill(selectResults);
return JsonConvert.SerializeObject(selectResults);
}}}
として返されるその後、必要な場合、私には、Content-処分を使って他のフォーラムで見ましたが、私はコードでHTTPResponseはを使用していません。どのようにこれを行うことができます。おかげ
は私が
OracleCommand selectCommand = new OracleCommand(strQuery, dbconn);
OracleDataAdapter adapter = new OracleDataAdapter(selectCommand);
DataTable selectResults = new DataTable();
adapter.Fill(selectResults);
string result = JsonConvert.SerializeObject(selectResults);
HttpResponseMessage response = new HttpResponseMessage();
response.StatusCode = HttpStatusCode.OK;
response.Content = new StreamContent(result);
response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = "Abc.JSON"
};
return(result);
以下のようにしようとしたが、それは、StreamConent
あなたのコントローラから 'string'を返します。あなたは少なくとも 'IHttpActionResult'を使うべきですが、ファイル名を設定するのに' HttpResponseMessage'を使うべきです。 –
Teo van kot、HTTPResponseMessageを使って試しましたが、StreamConentで無効な引数がいくつかあります。私は最初のWeb APIを作成しています – trx
シリアル化されたDataTableを返すことはAPIからは意味がありません。クライアント側ではどのような結果が得られますか? – Win