C# HttpWebResponse-避免保存文件对话框
我有以下方法从远程服务器读取响应C# HttpWebResponse-避免保存文件对话框,c#,.net,asp.net-mvc,asp.net-mvc-3,stream,C#,.net,Asp.net Mvc,Asp.net Mvc 3,Stream,我有以下方法从远程服务器读取响应 public string GetResponse() { string url = "http://remoteserver.com/getdata.jsp?id=515"; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); HttpWebResponse response = (HttpWeb
public string GetResponse()
{
string url = "http://remoteserver.com/getdata.jsp?id=515";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream resStream = response.GetResponseStream();
Encoding enc = System.Text.Encoding.GetEncoding(1252);
StreamReader loResponseStream = new
StreamReader(response.GetResponseStream(), enc);
string ServerResponse = loResponseStream.ReadToEnd();
loResponseStream.Close();
response.Close();
return ServerResponse;
}
在我的actionresult
中,我调用这个方法如下
public ActionResult Index()
{
string resp= GetResponse();
return View();
}
现在,视图浏览器不再显示,而是提示我保存文件。如何避免这种情况并以正常方式显示视图您可以使用自定义操作结果
public class TextActionResult : ActionResult
{
readonly string _response;
public TextActionResult() { }
public TextActionResult(string response)
{
_response = response;
}
public override void ExecuteResult(ControllerContext context)
{
context.HttpContext.Response.Clear();
context.HttpContext.Response.ContentType = "text/html"; //text/plain?
context.HttpContext.Response.Write(_response);
//you may want further tweaks here
}
}
你的控制器呢
public TextActionResult Index()
{
string resp= GetResponse();
return new TextActionResult (resp);
}
ps-看看如何使用WebClient,例如
string url = "http://remoteserver.com/getdata.jsp?id=515";
using (var client = new WebClient())
{
client.Encoding = System.Text.Encoding.GetEncoding(1252);
var result = client.DownloadString(url);
}
return result;
试试这个
public ActionResult Index()
{
string resp= GetResponse();
return Content(resp);
}
您需要添加
Response.ContentType=“text/HTML”
;这给了我一个错误,这个类没有实现这个属性