下一步按钮返回当前记录

时间:2017-05-24 09:07:25

标签: c# asp.net-mvc

我正在尝试在我的视图中实现Next按钮以转到下一条记录。

当我点击按钮时,它只是在我的控制器中调用当前项而不是下一个的Details动作。

因此,如果我查看Sample 1并点击Next,我会在{{1}中调用sampleNumber时看到1仍为Details }}

以下是SampleController中按钮的代码:

Details.cs.html

@{ if (Model.Pallet.Samples.Count > Model.SampleNo) { using (Html.BeginForm("Details", "Sample")) { @Html.Hidden("sampleNumber", Model.SampleNo + 1) <input type="submit" value="Next" class="pull-right" /> } } } 方法有签名:

Details

非常感谢任何建议

2 个答案:

答案 0 :(得分:1)

您需要使用

声明一个新变量
@{
   var next_record = Model.SampleNo + 1;
}

并更改

@Html.Hidden("sampleNumber", Model.SampleNo + 1)

@Html.Hidden("sampleNumber", @next_record)

答案 1 :(得分:1)

从表面上看,您已发布到动作Details,但我不确定您是如何将该值传递给它的。

所以我看到了解决方案的两个部分。

1)您应该将视图模型传递给控制器​​操作。

这样做的好处是能够获取值,同时递增计数器,从视图中删除该逻辑。

下面,ViewModel将与用于视图的@model部分的类型相同。

public ActionResult Details(ViewModel vm)
{
    // Other logic to get details
    vm.SampleNo++;
    return View(vm);
}

2)sampleNumber的隐藏字段未绑定到视图模型,因此当您发布帖子时,传递的值为Model.SampleNo而不是Model.SampleNo + 1,因为我怀疑您期待它。

您应该将@Html.Hidden...更改为@Html.HiddenFor(Model.SampleNumber)以获得正确的绑定。