我不知道这是否会破坏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传递数据
答案 0 :(得分:1)
您有几个选项,但不能使用ActionLink
,因为它只构建了一个HTML a
元素。
您可以使用SESSION
将数据从控制器传递到控制器。只需确保在之后清除那些会话变量。
您也可以使用表单POST
数据。
这完全取决于您所需的界面,以及何时可以获得该数据。
答案 1 :(得分:0)
使用隐藏输入的表单:
<% using(Html.BeginForm()) { %>
<%: Html.Hidden("user_id", item.user_id) %>
<%: Html.Hidden("item_id", item.item_id) %>
<button type="submit">Return</button>
<% } %>
如果您不喜欢该按钮,可以使用CSS将其设置为看起来像链接。
答案 2 :(得分:0)
使用HTTP POST,值可以作为键值对而不是URL传递,但在大多数情况下,操作是幂等的,你很可能想要使用GET,在这种情况下,没有另一种方式;参数是路径或查询字符串中URL的一部分。