如何通过html.actionlink
或使用除表单提交之外的任何其他方法传递整个模型?它有什么办法或提示吗?
答案 0 :(得分:18)
虽然在复杂的情况下不可取,但你仍然可以这样做!
public class QueryViewModel
{
public string Search { get; set; }
public string Category { get; set; }
public int Page { get; set; }
}
// just for testing
@{
var queryViewModel = new QueryViewModel
{
Search = "routing",
Category = "mvc",
Page = 23
};
}
@Html.ActionLink("Looking for something", "SearchAction", "SearchController"
queryViewModel, null);
这将生成一个与href
类似的操作链接,
/ SearchController / SearchAction搜索=路由&安培;类别= MVC&安培;页= 23
这将是您的行动,
public ViewResult SearchAction(QueryViewModel query)
{
...
}
答案 1 :(得分:4)
不,您无法使用链接或表单传递整个复杂对象。您可以采取几种可能的方法:
答案 2 :(得分:1)
您可以使用javascript检测链接上的点击,序列化表单(或您要传递的任何数据)并将其附加到您的请求参数。这应该达到你想要实现的目标......