如何在C#中将值作为url传递

时间:2014-12-17 12:08:06

标签: c# asp.net-mvc

我指定了,

@foreach (int ans in Model.UnAnsweredList)
{
    <a href="/Dashboard/GoToAnswer?@ans/">@ans</a>
}

,其get方法为,

 public ActionResult GoToAnswer(int? number)

即使ans是int类型,该值也不会传递给方法。 请告诉我该怎么做。

4 个答案:

答案 0 :(得分:9)

当您使用查询字符串时,您需要指定参数的name,例如name=value(因为它是键值字典,因此您不能省略参数的名称)。

您需要更改链接:

@foreach (int ans in Model.UnAnsweredList)
{
    <a href="/Dashboard/GoToAnswer?number=@ans">@ans</a>
}

但事实上,您应该更好地使用Html.ActionLink方法,因为您的自定义路线会被应用:

@foreach (int ans in Model.UnAnsweredList)
{
    @Html.ActionLink(ans, "GotToAnswer", "DashBoard", new {number=ans})
}

答案 1 :(得分:3)

如果您的路由中没有number,则应将参数命名为:

<a href="/Dashboard/GoToAnswer?number=@ans/">@ans</a>

如果它在您的路由中,您将不会使用查询字符串:

<a href="/Dashboard/GoToAnswer/@ans/">@ans</a>

答案 2 :(得分:0)

您可以使用ActionLink作为

 @Html.ActionLink(@ans, "GoToAnswer","Dashboard", new {number=@ans})

答案 3 :(得分:-1)

尝试使用HTML帮助程序。

@HTML.ActionLink(ans, "GoToAnswer", "ControllerName", new { number = ans })