71

誰かがUrl.action()を使用して動的な値を渡す方法を教えてもらえますか?

何かのようなもの、

var firstname="abc";
var username = "abcd";
location.href = '@Html.Raw(@Url.Action("Display", "Customer", new { uname = firstname ,name = username}))';

名、ユーザー名はUrl.action()メソッド内で参照されていません。

Url.action()を使用してこれらの動的な値を渡す方法は?

4

4 に答える 4

154

メソッドはの@Url.Action()proccessであるため、この関数にパラメーターとして値をserver-side渡すことはできません。このメソッドによって生成されたURLと変数をclient-side連結できます。これは、出力の文字列です。次のようなものを試してください。client-sideserver-side

var firstname = "abc";
var username = "abcd";
location.href = '@Url.Action("Display", "Customer")?uname=' + firstname + '&name=' + username;

はで@Url.Action("Display", "Customer")処理されserver-side、残りの文字列はで処理され、メソッドclient-sideの結果を。で連結します。server-sideclient-side

于 2013-02-27T12:32:27.050 に答える
9

この回答は、質問に100%関連していない可能性があります。しかし、それは問題に対処します。私はこの要件を達成するためのこの簡単な方法を見つけました。コードは以下のとおりです。

<a href="@Url.Action("Display", "Customer")?custId={{cust.Id}}"></a>

上記の例では、 {{cust.Id}}はAngularJS変数です。ただし、JavaScript変数に置き換えることができます。

このメソッドを使用して複数の変数を渡そうとしたことはありませんが、必要に応じてURLに追加できることを期待しています。

于 2017-04-24T08:42:45.137 に答える
1

私の場合、次のことを行うだけでうまくいきました。

コントローラー:

[HttpPost]
public ActionResult DoSomething(int custNum)
{
    // Some magic code here...
}

アクションなしでフォームを作成します。

<form id="frmSomething" method="post">
    <div>
        <!-- Some magic html here... -->
    </div>
    <button id="btnSubmit" type="submit">Submit</button>
</form>

フォームにアクションを追加した後、送信をトリガーするボタンクリックイベントを設定します。

var frmSomething= $("#frmSomething");
var btnSubmit= $("#btnSubmit");
var custNum = 100;

btnSubmit.click(function()
    {
        frmSomething.attr("action", "/Home/DoSomething?custNum=" + custNum);

        btnSubmit.submit();
    });

これがvatosに役立つことを願っています!

于 2016-10-21T18:00:44.580 に答える
1

最も簡単な方法は次のとおりです。

  onClick= 'location.href="/controller/action/"+paramterValue'
于 2018-06-14T09:59:19.353 に答える