Asp.net mvc 2 ASP.NET MVC不通过url在链接中传递数据

Asp.net mvc 2 ASP.NET MVC不通过url在链接中传递数据,asp.net-mvc-2,http-post,Asp.net Mvc 2,Http Post,我不知道这是否违背了MVC的目的,但我希望有一个接受2个变量的控制器,但我不知道如何传递url。有没有简单的方法 public ActionResult Return(string user_id, int item_id) 现在我正在制作这样的链接 <%: Html.ActionLink("Return", "Return", new {user_id = item.user_id, item_id = item.item_id}) %> 是否有一种简单的方法可以将数据发布

我不知道这是否违背了MVC的目的,但我希望有一个接受2个变量的控制器,但我不知道如何传递url。有没有简单的方法

public ActionResult Return(string user_id, int item_id)
现在我正在制作这样的链接

<%: Html.ActionLink("Return", "Return", new {user_id = item.user_id, item_id = item.item_id}) %>


是否有一种简单的方法可以将数据发布到控制器,而不是通过URL传递数据

您有两个选项,但不能使用
ActionLink
,因为它只是构造了一个HTML
元素

您可以使用
会话
将数据从控制器传递到控制器。只需确保在之后清除这些会话变量即可

您也可以使用表单发布数据


这完全取决于所需的界面以及数据可用的时间。

使用带有隐藏输入的表单:

<% using(Html.BeginForm()) { %>
    <%: Html.Hidden("user_id", item.user_id) %>
    <%: Html.Hidden("item_id", item.item_id) %>
    <button type="submit">Return</button>
<% } %>

返回

如果您不喜欢该按钮,可以使用CSS将其样式设置为链接。

使用HTTP POST,值可以作为键值对传递,而不是在URL中传递,但在大多数情况下,操作是幂等的,您很可能希望使用GET,在这种情况下,没有其他方法;参数是路径或查询字符串中URL的一部分