单击ActionLink后,我想传递一个模型和一个int到一个控制器.
@Html.ActionLink("Next","Lookup","User",new { m = Model.UserLookupviewmodel,page = Model.UserLookupviewmodel.curPage },null)
它不起作用,而是通过模型的空白实例,当使用新的时候,它将会预期.
@Html.ActionLink("Next",Model.UserLookupviewmodel,null)
工作.
调节器
[HttpGet] public ActionResult Lookup(UserLookupviewmodel m,int page = 0) { return this.DoLookup(m,page); }
查看模型
public class UserLookupviewmodel { public int curPage { get; set; } [display(Name = "Forenames")] public string Forenames { get; set; } [display(Name = "Surname")] public string Surname { get; set; } [display(Name = "dob")] public DateTime? dob { get; set; } [display(Name = "Post code")] public string Postcode { get; set; } }
解决方法
您不能使用ActionLink通过链接传递属性,但您可以执行以下操作来获得相同的行为.
<form action="/url/to/action" Method="GET"> <input type="hidden" name="Property" value="hello,world" /> <button type="submit">Go To User</button> </form>
如果您创建一个帮助程序来生成这些GET表单,那么您将能够像普通的链接按钮那样进行样式化.我唯一要提醒的是,页面上的所有表单都易于修改,因此我不会相信数据.当你到达你要去的地方时,我宁愿再次拉出数据.
创建搜索操作时,我使用上面的技术,并希望保留搜索记录并保持后退按钮的工作.
希望这可以帮助,
哈立德:)
附:
原因是这样的.
@Html.ActionLink("Next",null)
是因为ActionLink方法的参数列表被概括为一个对象,所以它将需要任何东西.它将对该对象执行的操作是将其传递给RouteValueDictionary,然后根据该对象的属性尝试创建一个querystring.
原文地址:https://www.jb51.cc/aspnet/250661.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。