我认为您将不得不使用 iFrame - 但这并不全是坏事!你仍然可以显示你的字符串。
控制器将如下所示:
public class HomeController : Controller
{
//
// GET: /Home/
//Initial landing page
public ActionResult Index()
{
return View("");
}
//for full postbacks, sets the iframes src on the index view
public ActionResult Page(String url)
{
String myurl = "/Home/Search?url=" + url;
return View("Index", model: myurl);
}
//for the iframes src attribute
public ActionResult Search(String url)
{
//replace pageContent with your html string
String pageContent = "<html><head><title>this is the title</title></head><body>this is the body</body></html>";
return Content(pageContent);
}
}
索引将是您的登录或“搜索”页面,如果不支持 javascript,页面将是您的表单发布到的位置,搜索将是您将 iFrame 指向的位置。
行动:
@model String
@{
ViewBag.Title = "URLer";
}
<script type="text/javascript">
$(document).ready(function () {
$('#searchForm').submit(function (e) {
e.preventDefault();
$('#page').attr('src', '/Home/Search?url=' + $('#url').val());
return false;
});
});
</script>
<div>
@using (Html.BeginForm("Page", "Home", FormMethod.Get, new { id = "searchForm" }))
{
<input id="url" name="url" type="text" />
<input id="Search" type="submit" value="Search" />
}
</div>
<iframe id="page" src="@Model" width="100%" height="500">
</iframe>
这显示了一个搜索框和提交按钮,使用 jQuery 表单提交将 iframe 的 src 属性设置为搜索操作,即“/Home/Search”并将 url 文本框的值添加为查询字符串的一部分,这将然后触发 iFrame 导航到正在设置的 url(以 /Home/Search?url= http://google.com为例),您返回自己的原始 html 页面/字符串而不是实际网站。
该表单是一个安全网,可能不需要,但是如果出于某种原因禁用了 javascript,该表单将发布到 /Home/Page?url= http://google.com,其中返回的视图将设置 iframe,因此将从我们的 Search 操作中获取 url。