微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MVVC - 使用 ViewBag 和控件传递参数的问题

如何解决MVVC - 使用 ViewBag 和控件传递参数的问题

我已经被投入到其他人已经完成的 MVVC 项目中,但存在一些问题(该项目,而不是某人:D)。 我以前对它一无所知,所以我搜索了教程和问题,但我无处可去。 因此,如果我没有找到任何已经相关的帖子,请随时将我重定向到那里。

控制器有一个方法,它返回一个 ReportClienti 类型的 IQueryable。 这是签名

 public ActionResult ReportClienti(DateTime? date,string sortOrder,int? currentClienteID,string currentDescrizione,int? clienteIDsearch,string descrizionesearch,int? page)

如果我理解正确,如果页面中存在任何 id 与参数相同的控件,它们应该自动传递。

我认为这一行会在页面打开后立即加载列表:

 @Html.PagedListPager(Model,page => Url.Action("ReportClienti",new { @page,@sortOrder = @ViewBag.CurrentSort,@currentClienteID = ViewBag.CurrentClienteID,@currentDescrizione = ViewBag.CurrentDescrizione }))

显然这个调用的所有参数都等于 null。

到目前为止一切顺利。

页面的第一部分有这个代码

@using (Html.BeginForm("ReportClienti","LavoratoreRapportini",FormMethod.Get,new { @class = "form-inline" }))
        {
        <div class="form-group">

            <input type="button"
                   class="btn btn-info"
                   style="min-width:80px; padding:4px;"
                   value=@ViewBag.Data.AddMonths(-1).ToString("MMMM")
                   onclick="location.href='@Url.Action("ReportClienti",@ViewBag.Data.AddMonths(-1))'" />

               

基本上它是一个按钮,用于在当前选择之前选择一个月并执行方法 ReportClienti 以加载列表。 我假设 @ViewBag.Data.AddMonths(-1) 自动作为第一个参数传递(调试我确认“日期”具有正确的值)。 我试图将参数的名称从“date”更改为“testDate”,但在这种情况下,该方法将所有参数接收为 null。 这怎么可能?我不明白如何以这种方式绑定名称

在较低的部分我得到:

@using (Html.BeginForm("ReportClienti",new { @class = "form-inline" })) {

    @Html.DropDownList("clienteIDsearch",(SelectList)ViewBag.FKclienteID,"",htmlAttributes: new { @class = "form-control" })

    @Html.TextBox("descrizionesearch",@ViewBag.CurrentDescrizione as string,new { @class = "form-control frmFilter" })

        <button type="submit" 
                class="btn btn-primary"
                @*onclick="location.href='@Url.Action(" ReportClienti",@ViewBag.Data)'"*@
                onclick="location.href='@Url.Action(" ReportClienti","LavoratoreRapportini" )'">
            Search
        </button>
        

这始终传递参数 clienteIDSearch 和 descrizionesearch 的值,但我无法传递日期的值。 基本上它按日期或按下拉列表和文本框过滤,从不同时过滤。 我什至尝试将视图包中的日期值设置为隐藏字段,但仍然无法将该值传递给日期(如果我添加一个新参数,将其设置为字符串,我可以传递它,但是作为日期时间?它总是空的)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。