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

时间:2013-02-14 05:49:14

标签: 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"})';

我的控制器方法是,

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

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

请建议我,怎么回事?

2 个答案:

答案 0 :(得分:5)

默认情况下,使用@ block发出的每个内容(不是IHtmlString)都由Razor自动HTML encoded

因此,@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"}))';

希望这有帮助

答案 1 :(得分:1)

'&'有问题被编码为'&安培;'

模型绑定器无法识别此值。您需要通过使用Html.Raw函数呈现链接来阻止此编码。

使用'@ Html.Raw(Url.Action ......)'