これが私がASP.NETでやろうとしていることです。
Main.aspxという1ページを作成します。このページにはDIVとボタンがあります。
ブラウザはmain.aspxをロードします。その後、ボタンをクリックすると、Main.aspxのPage99.aspxがMain.aspxのDIVにロードしますが、Main.aspxがポストバックを必要としていません。
そのため、Main.aspxは一度負荷をかけ、その後main.aspxに表示されているすべてのコンテンツは異なる.aspxページから来ます。
ps。上記のような解決策を探していますが、フレームを使用していません。
pdate 1 Page99は単純なHTMLページではないことを言及する必要があります。 Webコントロールが含まれます。
私が知っている限り、iFramesの使用を禁止すると、あるASPXページを別のASPXページにロードする方法はありません。
PostBacksまたはAjaxを使用すると、代わりにUserControls(ASCX)を使用できます。彼らはとにかく同じコンテンツがほとんど同じコンテンツを含めることも、MasterPageを使用することもできます。
あなたがポストバックを持っていなければ、ajaxはおそらく行く方法ですが、もう一度ASPXページを別のものにロードすることはできません(他のものの中で)ページの内容を変更するだけです。
Web開発のための他のプラットフォームについてはわからないが、ASP.NETが「必須」でない場合は、他のプラットフォームをチェックアウトすることを検討する必要があります。
IFRAMESを使用したくない場合は、HTMLのObject Elementを非常によく使用できます。見てHTMLの例を参照してください。 ASPXボタンなどのOnClientClickプロパティを使用するなど、いくつかの変更でASPXにも非常によく使用できます。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>mouseover image position</title>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
<style type="text/css">
/*<![CDATA[*/
body
{
background-color:#aaaaff;
}
#one
{
position:absolute;
left:50%;
top:50%;
margin:-150px 0 0 -250px;
}
object
{
width:500px;
height:300px;
border:solid 1px #000000;
}
/*//]]>*/
</style>
<script type="text/javascript">
//<![CDATA[
// written by: Coothead
function updateObjectIframe(which){
document.getElementById('one').innerHTML = '<'+'object id="foo" name="foo" type="text/html" data="'+which.href+'"><\/object>';
}
//]]>
</script>
</head>
<body>
<div id="one">
<object id="foo" name="foo" type="text/html" data="http://www.w3schools.com/"></object>
</div>
<div>
<a href="http://www.google.com" onclick="updateObjectIframe(this); return false;">this is an object test not an iframe test</a>
</div>
</body>
</html>
_