C# 下一步按钮返回当前记录

C# 下一步按钮返回当前记录,c#,asp.net-mvc,C#,Asp.net Mvc,我试图在视图中实现一个Next按钮,以转到下一条记录 当我单击按钮时,它只是在控制器中为当前项而不是下一项调用详细信息操作 因此,如果我查看Sample1并单击Next,我可以看到sampleNumber在SampleController中调用Details时仍然是1 以下是Details.cs.html中按钮的代码: @{ if (Model.Pallet.Samples.Count > Model.SampleNo) { using (Html.Begi

我试图在视图中实现一个
Next
按钮,以转到下一条记录

当我单击按钮时,它只是在控制器中为当前项而不是下一项调用
详细信息
操作

因此,如果我查看
Sample
1并单击
Next
,我可以看到
sampleNumber
SampleController
中调用
Details
时仍然是
1

以下是
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" />
        }
    }
}

非常感谢您的建议

您需要使用

@{
   var next_record = Model.SampleNo + 1;
}
改变

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


您需要使用

@{
   var next_record = Model.SampleNo + 1;
}
改变

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


从表面上看,您正在向操作
详细信息发布
,但我不确定您是如何将值传递给它的

因此,我看到了解决方案的两个部分

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

这样做的优点是能够获取值,同时增加计数器,从而从视图中删除该逻辑

public ActionResult Details(ViewModel vm)
{
    // Other logic to get details
    vm.SampleNo++;
    return View(vm);
}
下面,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)
,以获得正确的绑定。

从您发布到操作
详细信息
的所有外观来看,我不确定您是如何将值传递给它的

因此,我看到了解决方案的两个部分

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

这样做的优点是能够获取值,同时增加计数器,从而从视图中删除该逻辑

public ActionResult Details(ViewModel vm)
{
    // Other logic to get details
    vm.SampleNo++;
    return View(vm);
}
下面,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)
,以获得正确的绑定。

我正在尝试选项1,但由于某些原因,
找不到类型或命名空间名称“ViewModel”
已更新<代码>视图模型
只是一个占位符。它应该与视图的
@model
部分使用的类型相同。我正在尝试选项1,但由于某种原因,
找不到类型或命名空间名称“ViewModel”
。已更新<代码>视图模型
只是一个占位符。它应该与视图的
@model
部分使用的类型相同。