I am calling a controller method using Url.action
like,
location.href = '@Url.Action("Display", "Customer", new { username = "abc",name = "abcdef",country = "India",email = "[email protected]",phone = "9456974545"})';
My controller method is,
public void Display(string username, string name, string country, string email, string phone)
{ }
In this method, I can get only the value of first parameter (username
). Its not getting other parameter values that is passed. All other values are null.
Please suggest me, whats wrong?
By default every content (which is not IHtmlString
) emitted using a @ block is automatically HTML encoded
by Razor.
So, @Url.Action()
is also get encoded and you are getting plain text. And &
is encoded as &
If you dont want to Encode then you should use @Html.Raw(@Url.Action("",""))
.
The answer for you question is :
location.href = '@Html.Raw(@Url.Action("Display", "Customer", new { username = "abc",name = "abcdef",country = "India",email = "[email protected]",phone = "9456974545"}))';
Hope this helps