0

ボタンに部分ビューを印刷させようとしています。

| | メインビュー | 部分的なビュー |

| | ユーザー | プロフィール |


ユーザーの上に、ユーザーがクリックして自分のプロファイルやレポートなどにアクセスできるリンクがあります.Media Print CSSでプロファイルを印刷して、紙の上で完璧に見えるようにするためのリンクを作成しました。

私が抱えている問題は、それを機能させることです。

function print_url () {
  location: url;
  print();
}
<li data-username="@Model.UserName"><a href="javascript:print_url('URL/Home/ContentView?username=@Model.UserName')">Print Profile</a></li>

これは、すべてのブラウザで機能する必要があります。Chromeは利用可能なビューがないと言うだけで、Firefoxは応答せず、IEは何もしません:(。

素晴らしいと思うことがあれば。

AJAX

getUserData: function (elem) {
  $elem = $(elem).closest("[data-username]");
  var username = $elem.data("username");
  var profile = $elem.data("profile");
  var directReport = $elem.data("direct-report");
  $.ajax({
    url: 'Home/ContentView?username=' + username,
    type: 'GET',
    data: username,
    data: profile,
    data: directReport,
    beforeSend: function () {
      $('#loader').css('display', 'block');
    },
    success: function (result) {
      $("#content").html(result).scrollTop(result);
      //$("#tabs").fadeIn('1500');
      //console.log(result + '\n\n DONE');
    },
    error: function (e, msg) {
      //console.log(e, msg);
    }
  })
4

1 に答える 1

0

のけ者,

わかりました、 a を入力してlocation: urlから(URLに移動したと想像したら)、print()を呼び出します。ただし、場所の変更は return ステートメントに似ているため、そのステートメントがヒットすることはありません。つまり、すべての実行がその時点で終了します。

jquery ajax呼び出しを行う、またはjqueryが適用されない(タグが表示されない)など、おそらくあなたのために機能する代替シナリオはありますか? ここは急ぎましょう!! :-)

また、余談ですが、あなたの URL 定義は非常に壊れやすいので、少なくとも@Url.Action()ie の使用を検討する必要があります:

<a href="javascript:print_url('@Url.Action("action", "controller, new {username=@Model.UserName}, null)'">

...代わりに、これにより、ホスティング構成がどのようなものであっても忠実性が保証されます。Tho'、私の確固たるアドバイスは、ajax を使用してあなたのpartialview;を呼び出すことです。あなたが提供した情報に基づいて、これがうまくいく方法は他にありません。

于 2012-08-09T19:32:53.780 に答える