我正在使用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
)的值。它没有获得传递的其他参数值。所有其他值均为空。
请建议我,怎么回事?
答案 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 ......)'