0

asp.net mvc3.visual studio2010 を使用しています。

アプリケーションに 3 つのフレームがあります。別のペインでボタンをクリックしたときに、別のペインを更新したい。

このために、私framesetは自分のアプリケーションで使用しました。のように使用しました

<frameset cols="25%,*,25%"> 
    <frame name ="f1" src="../SearchCriteria/Index"/> 
    <frame name="f2" src="../SearchResults/Index" /> 
    <frame name="f3" src="../SearchProfile/Index" />
</frameset>

アプリケーションをデバッグしているときに、出力に空のページが表示されます。私がどこを間違えたのか教えていただけますか?

私のビュー パスは次のとおりです。
View->SearchCriteria->Index.cshtml View->SearchResults->Index.cshtml View->SearchProfile->Index.cshtml

4

2 に答える 2

1

これはASP.NETMVCアプリであるため、プロジェクトにはすでにjQueryライブラリが含まれているはずです。jQueryの優れた機能を使用して、ユーザーにすばらしいユーザーエクスペリエンスを提供してみませんか?

FrameSetの代わりにDIVを使用します。このページ(またはそのレイアウトテンプレートを使用するすべてのページで使用できるようにレイアウトページ)にjQueryライブラリを含めます

<div id="divNavigation">
  <ul>
     <li>@Url.ActionLink("About","About","Home",null, new { @class="lnk"})</li>
     <li>@Url.ActionLink("Contact","Contact","Home",null, new { @class="lnk"})</li>
     <li>@Url.ActionLink("Jobs","Jobs","Home",null, new { @class="lnk"})</li>
  </ul>
</div>
<div id="content">

</div>
<script type="text/javascript">
  $(function(){
     $(".lnk").click(function(e){
       e.preventDefault();
       $("#content").load($(this).attr("href"));
     });
  });
</script>

上記のコードは、ユーザーがcssクラスlnkのアンカータグをクリックするたびに、jQueryload関数を使用して、リンクのHREFページのコンテンツを非同期的にロードします。したがって、ページの更新/再読み込みはありません。ユーザーに表示されます。

于 2012-08-04T15:55:08.447 に答える
0

フレームを ID 付きの div に変更し、フレーム 1 に ID 付きのボタンを配置し、データを取得して div 2 の html に入力するボタンにクリック イベントをアタッチします。最近の開発者は簡単な道をたどり、コーディングを減らしてより多くのことを行うことがわかります。あなたのフレームソリューションが可能である場合(私はそう確信しています)、ほとんどの開発者がただあえぎ、OMG WTFに行くと確信しているものになるでしょう。

特定のフレームワークをプッシュしたくはありませんが、JSON や XML に慣れていない場合は、JavaScript をそのまま使用してこれらすべてを実行し、html コンテンツを返すことができます。

于 2012-08-04T15:34:53.870 に答える