0

jqueryからコードc#に変数を渡そうとしましたが、何かが間違っています。私はjsにこのコードを持っています:

<script type="text/javascript">
    var mySerial = '12345';
    var fooUrl = '@Url.Action("Foo", "Home")';
    window.location.href = fooUrl + '?mySerial' + encodeURIComponent(mySerial);
</script>

コントローラー内:

[HttpPost]
public ActionResult Foo(string mySerial)
{
    return View();
}

実行後、私はこのURLを保持します:http://localhost:2214/@Url.Action("Foo",%20"Home")?mySerial12345そして、どこに問題があるのか​​わかりません、誰かが私を助けることができますか?

4

1 に答える 1

3

等号を忘れました:

window.location.href = fooUrl + '?mySerial=' + encodeURIComponent(mySerial);

mySerial=の代わりに注意してくださいmySerial

@Url.Actionちなみに、RazorではなくWebFormsビューエンジンを使用しているようですが、生成された出力にリテラルが表示されている場合は、少なくともそれが結論になります。この場合は、使用しているビューエンジンに応じた適切な構文を使用してください。

<script type="text/javascript">
    var mySerial = '12345';
    var fooUrl = '<%= Url.Action("Foo", "Home") %>';
    window.location.href = fooUrl + '?mySerial=' + encodeURIComponent(mySerial);
</script>

最後の注意:これが別のjavascriptファイルにある場合、などのサーバー側ヘルパーを使用することはできませんUrl.Action。インラインタグが表示されているため、別のファイルにはないようですが、<script>ここに表示されているのは、実際のコードでは別のファイルにある可能性があります。

于 2012-06-18T14:55:48.783 に答える