ASP .NET WEB API에서 반환되는 파일의 이름을 설정하려고합니다. 현재 URL에서 전달되는 매개 변수의 이름으로 반환됩니다. 하지만 그때 필요하면 것은 내가 내용 - 처리하여 다른 포럼에보고했다 ASP .NET 웹 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);
}}}
ABC.JSON
로 반환되는하지만 코드에서 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에서 일부 잘못된 인수가 들어 최고의 오버로드 된 메서드의 일치라고 StreamContent에 오류가 발생
당신은 같은 요청 객체의 CreateResponse 방법을 사용할 수 있습니다
컨트롤러에서 '문자열'을 반환합니다. 최소한 'IHttpActionResult'를 사용해야하지만 파일 이름을 설정하는 데 더 좋은'HttpResponseMessage'를 사용해야합니다. –
Teo van kot, HTTPResponseMessageand를 사용하여 시도해 보았습니다. StreamConent에서 잘못된 인수가있는 경우에 대한 오버로드 된 가장 좋은 메서드에서 오류가 발생했습니다. 내 첫 웹 API를 만들었습니다 – trx
직렬화 된 DataTable을 반환하는 것은 API에서 의미가 없습니다. 클라이언트 측에서 얻고 자하는 최종 결과는 무엇입니까? – Win