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) 的值。它没有得到传递的其他参数值。所有其他值为空。

请建议我,有什么问题?

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 回答