加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ASP.NET MVC通过ActionLink传递模型

发布时间:2020-12-15 23:38:57 所属栏目:asp.Net 来源:网络整理
导读:单击ActionLink后,我想传递一个模型和一个int到一个控制器. @Html.ActionLink("Next","Lookup","User",new { m = Model.UserLookupViewModel,page = Model.UserLookupViewModel.curPage },null) 它不起作用,而是通过模型的空白实例,当使用新的时候,它将会预
单击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; }
}

我们如何将他们传递在一起? Lookup方法的参数与ActionLink中的命名属性相匹配.

解决方法

您不能使用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.

如果你说这个方法在上面工作,你也可以尝试添加一个名为Id的viewmodel的新属性,它将像你想要的那样工作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读