为了访问供应商资源(外部托管),我有一个 URL,该 URL 发出包含身份验证凭据的请求。URL 是动态构建的,但我不希望它出现在用户的浏览器中。相反,我想构建 URL,使用 HttpWebRequest 发送请求,获取结果,然后通过 AJAX 调用将控制器操作中的这些结果返回给浏览器中的用户。
我觉得我以前做过这个,并且我已经知道如何从服务器内发出 HTTP 请求,但是我无法确定要使用哪种类型的 ActionResult。
为了访问供应商资源(外部托管),我有一个 URL,该 URL 发出包含身份验证凭据的请求。URL 是动态构建的,但我不希望它出现在用户的浏览器中。相反,我想构建 URL,使用 HttpWebRequest 发送请求,获取结果,然后通过 AJAX 调用将控制器操作中的这些结果返回给浏览器中的用户。
我觉得我以前做过这个,并且我已经知道如何从服务器内发出 HTTP 请求,但是我无法确定要使用哪种类型的 ActionResult。
看来您可以只使用普通的 ActionResult 来处理这个问题。如果我理解你的问题,工作流程将是这样的......
查看模型
public ResponseModel(){
public string response {get;set;}
}
控制器
public ActionResult GetOutsideResults(){
//make HttpWebRequest
var model = new ResponseModel();
model.response = ResultsFromWebRequest();
return View(model);
}
看法
@Html.Raw(model.response);
您也可以对 Ajax 请求和局部视图执行相同的操作。这会将凭据保留在服务器上,并提供一种返回 HTML 结果的方法。我认为您也可以使用 JSON 结果并使用 JQuery 进行解析。
控制器
public JsonResult GetOutsideResults(){
//make HttpWebRequest
return Json(ResultsFromWebRequest());
}
看法
$ajax({...
success: function(data){
$("#targetDiv").html(data);
});
您可以使用隐藏的 iframe 发布帖子并检索响应并将其显示给用户。