我认为有表单区域。如果我单击按钮 A,我想提交给 /Books/1,如果我单击按钮 B,我想提交给 /Books/2
我如何使用 MVC 实现这一目标?

最佳答案

听起来您想要做的是调用 Books Controller,例如使用 Search 操作。例如,您可能想要调用/Books/Search//1 或/Books/Search//2 等(您可以通过几种不同的方式来格式化这些 URL,但它是我认为主要是个人喜好问题)如果您希望 URL 显示为您在上面获得的内容(在 URL 中没有操作),则可以通过路由来完成,如下所示:

routes.MapRoute(
    "Books",
    "Books/{searchExpr}/{pageId}",
    new { controller = "Books", action = "Search", searchExpr = "", pageId = 1 }
);

我认为主要问题是您尝试使用 WebForms PostBack 一切范式,在这种情况下,您最好将信息发送到 URL 或查询字符串中的服务器。您真正要在此处发布表单数据的唯一时间是当用户实际在搜索框中键入内容并单击“搜索”按钮时 - 此时, Controller 会将搜索表达式通过将其填充到适当的 View 中ViewData,从那里,View 可以将它拉出来并重新填充结果页面上的文本框。

关于asp.net-mvc - asp.net mvc 以相同的形式发布到不同的 View ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/245482/

10-15 16:58