需要保持对用户隐藏URL,我可以将HTTP请求的结果作为ActionResult返回吗?

时间:2012-08-07 21:00:18

标签: asp.net-mvc-3 http actionresult

为了访问供应商资源(外部托管),我有一个URL,用于发出包含身份验证凭据的请求。该URL是动态构建的,但我不希望它出现在用户的浏览器中。相反,我想构建URL,使用HttpWebRequest发送请求,获取结果,然后通过AJAX调用将这些结果从控制器操作返回给浏览器中的用户。

我觉得我之前已经完成了这项工作,并且我已经知道如何从服务器内部发出HTTP请求,但是我无法确定要使用哪种类型的ActionResult。

2 个答案:

答案 0 :(得分:1)

似乎你可以使用普通的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);
     });

答案 1 :(得分:0)

您可以使用隐藏的iframe发布帖子并检索响应并将其显示给用户。