使用Url.action调用控制器方法时,只有第一个参数值.

Kok*_*ila 4 asp.net-mvc controller url.action

我正在调用一个控制器方法,使用Url.action,

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

我的控制器方法是,

public void Display(string username, string name, string country, string email, string phone)
{    }
Run Code Online (Sandbox Code Playgroud)

在这个方法中,我只能得到第一个参数(username)的值.它没有获得传递的其他参数值.所有其他值均为null.

请建议我,什么错?

Kar*_*ala 6

默认情况下,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"}))';
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助