-1

こんにちは、私は mvc3 を使用しています。私のサイトには、現在
次のように 1 つのパラメーターを渡すリンクがありました。

<a href="/Call/@Model.id">Link To Call</a>

idを Action に渡していることがわかるように、
別のパラメーターを渡す必要がありますが
、リンクのルートと現在の状況を変更したくありません。隠したものを送信できますか。
私のリンクが同じに見える

私はこれをやろうとしましたHtml.ActionLink が、うまくいきません

私を助けてください 。前もって感謝します

4

5 に答える 5

2

これを実現する最も簡単な方法は、意味的に行うことです =><form>リンクの代わりに HTML を使用します。このようにして、非表示の値を含むすべての入力フィールド値が自動的に送信され、javascript を使用してアンカーの href を作成する必要がなくなります。したがって、アンカーはフォームの送信ボタンになります。

于 2012-05-22T07:58:41.553 に答える
0

非表示フィールドは動的であるため、次のようにします。

リンクにクラスを追加します。

<a class="link-call" href="/Call/@Model.id">Link To Call</a>

href は次のようにする必要があることに注意してください

href="@Url.Action("Index", "Call", { id  = @Model.id })"

次に、jQuery を使用して、簡単にリンクを埋めてその要求を行うことができます。

$(function() {

    $(".link-call").click(function(evt) {

        evt.preventDefault; // don't jump to /Call/2 automatically

        var url = $(this).attr("href") + "?"; // this will hold /Call/2?

        // append your hidden fields
        url += "hf1=" + $("#hf_001").val();
        url += "&hf2=" + $("#hf_002").val();
        url += "&hf3=" + $("#hf_003").val();

        // make the call
        document.location.href = url;
    });

});

コントローラーは次のようになります

public ActionResult Index(int id, string hf1, string hf2, string hf3)
{

}

ルートに があるID場合は、ルートから ID 値を取得でき、メソッドに渡す必要はありません。

于 2012-05-22T07:54:09.217 に答える
0

はい、クエリ文字列として渡すことができます

<a href="/Call/@Model.id?parm="+ somevalue>Link To Call</a>
于 2012-05-22T07:38:38.100 に答える
0

URIを編集せずにGETリクエストで求めていることを実行できるとは思いません。GET リクエストの本文で投稿データを使用することは技術的に可能だと思いますが、お勧めできません。URI を編集することを選択した場合は、アクションのパラメーター リストを編集して、それらの変更を反映する必要があります。

これをフォームにラップしてフォームを送信するのが最善です。

于 2012-05-22T07:57:15.673 に答える
0

リンクHttp Getはリクエストをトリガーし、リクエストとともに送信するデータGetはクエリ文字列に押し込まれます。非表示フィールドが動的な場合、次のようなハイパーリンクのクリック イベントでクエリ文字列にデータを追加できます

$('#linkId').live('click', function(){
   var href = $(this).attr('href');
   href += "?param1=" + $("#hidden1").val() + "&param2=" + $("#hidden2").val();
   $(this).attr('href',href);
   return true; 
});

上記のコードは、隠しフィールドから値を読み取り、URL に沿って送信します。これを望まない場合は、フォームを使用するように UI を変更するか、ajax リクエストを実行する必要があります。

于 2012-05-22T07:50:35.537 に答える