5

私は、次のUrl.actionように使用してコントローラーメソッドを呼び出しています。

location.href = '@Url.Action("Display", "Customer", new { username = "abc",name = "abcdef",country = "India",email = "abc@hmail.com",phone = "9456974545"})';

私のコントローラーの方法は、

public void Display(string username, string name, string country, string email, string phone)
{    }

このメソッドでは、最初のパラメーター(username)の値のみを取得できます。渡された他のパラメータ値を取得しません。他のすべての値はnullです。

私に提案してください、何が問題なのですか?

4

2 に答える 2

7

デフォルトではIHtmlString、@ブロックを使用して発行されたすべてのコンテンツ(そうではない)はHTML encoded、Razorによって自動的に送信されます。

したがって、@Url.Action()もエンコードされ、プレーンテキストが取得されます。そして、&としてエンコードされます&

エンコードしたくない場合は、を使用する必要があります@Html.Raw(@Url.Action("",""))

あなたの質問に対する答えは:

location.href = '@Html.Raw(@Url.Action("Display", "Customer", new { username = "abc",name = "abcdef",country = "India",email = "abc@hmail.com",phone = "9456974545"}))';

お役に立てれば

于 2013-02-14T06:33:51.130 に答える
1

'&'が'&'にエンコードされることに問題があります。

モデルバインダーはこの値を認識しません。Html.Raw関数を使用してリンクをレンダリングすることにより、このエンコードを防ぐ必要があります。

'@ Html.Raw(Url.Action ......)'を使用します

于 2013-02-14T06:28:49.413 に答える