0

ActionLink では解決できなかった問題を (私の限られた知識では) 解決したので、通常のハイパーリンクを使用しました。

これら 2 つのリンクがページにレンダリングされると、同じ CSS 条件を渡すため、互いに非常によく似たスタイルになりますが、私が気づいた 2 つの点でまったく同じではありません。

  • テキストは、ActionLink にないハイパーリンクで選択可能です
  • ActionLink にカーソルを合わせると、カーソルがポインタではなく手の形に変わり、ハイパーリンクはポインタにとどまります。

私は、ActionLink がハイパーリンクをレンダリングするという印象を受けました。これにより、両方が css によってスタイル設定されている理由が説明されますが、明らかにいくつかの違いがあります。

これを修正する方法を知っている人はいますか、または ActionLink をハイパーリンクに置き換えて AJAX 関数 (PartialView を返す) を呼び出す別の解決策を提案していますか?

アップデート

これはレンダリングされた HTML です。1 つ目はハイパーリンク、2 つ目は ActionLink です。

<li><a id="load-partial">Test</a></li> 
<li><a href="/Contact/List">Contact</a></li>

ハイパーリンクに id がある理由は、次のスクリプトを実行して特定の .xml ファイルにビューを作成するためdivです。レイアウトビューがなく、完全にフォーマットされていないビューを単独で返すだけなので、ActionLinkを使用してこれを複製することはできないようです。

<script>
$(document).ready(function () {
    $('#load-partial').click(function () {
        $.ajax({
            url: '/Contact/List/',
            datatype: 'html',
            success: function (data) {
                $('#adminmain').empty().html(data);
            }
        });
    });
});
</script>

どうもありがとう。

4

1 に答える 1

3

ActionLinkは、HTMLAタグを発行するサーバー側のヘルパーメソッドにすぎません。それについて特別なことは何もありません。

動作/レンダリングに違いが見られる場合は、レンダリングされたHTMLソースを表示し、そこで違いを探します。

Aタグを手動でコーディングする必要があるActionLinkで達成できないことはほとんどありません。それを使用して解決できなかった問題について、別の質問を投稿しましたか?

更新(投稿されたHTMLに基づく)

ハイパーリンクにhrefがないため、クリックしても何も実行されません。

ActionLinkにIDを追加する必要がある場合は、次のようにすることができます。

@Html.ActionLink("Contact (this is the text)", "List", "Contact", 
    new { someQueryStringParameter = 42 }, 
    new { id="load-partial" })

その例は、生成する方法を示しています

<a id="load-partial" href="/Contact/List?someQueryStringParameter=42">Contact (this is the text)</a>

IDは特定のHTMLページで一意である必要があることに注意してください。

于 2012-08-10T19:48:27.217 に答える