创建Url.Action会导致URL字符串生成错误

时间:2018-04-06 01:30:24

标签: c# asp.net-mvc

我有一个按钮,其onclick功能为onclick="location.href='@Url.Action("SendRegisterLink?Email="+ item.Email, "Account")'"

按钮工作,URL构建,我有一些JS从URL中抓取“电子邮件”字段 - 但我没有得到正确的输出:

预期网址

/Account/SendRegisterLink?Email=test@test.com

实际网址

/Account/SendRegisterLink%3fEmail%3dtest%40test.com

2 个答案:

答案 0 :(得分:2)

您需要使用

@Url.Action("SendRegisterLink, "Account", new { Email= item.Email});

答案 1 :(得分:1)

查看函数的实际参数。你可以在最新的vs中使用ctrl + click来检查它的参数。

public static string Action(this IUrlHelper helper, string action, string controller, object values);

如果您想使用Action功能,可以使用该重载。第一个参数只需要您的操作名称作为字符串名称。所以你可以像这样使用它:

@Url.Action("SendRegisterLink", "Account", new { item.Email })

如果您想直接提及带参数的网址,可以使用Content功能:

@Url.Content("~/Account/SendRegisterLink?Email=" + item.Email)

如果您的意图只是一个重定向,您还可以使用标签清理:

<a href="~/Account/SendRegisterLink?Email=@item.Email">My Link</a>

您始终可以更改锚标记的CSS。