MVC3剃须刀如何处理每个动态创建的按钮组的按钮点击

时间:2012-04-29 01:44:48

标签: asp.net-mvc-3 razor

在我的MVC3剃刀视图中,我有一个“GetRecords”按钮。单击此按钮,它将回发并检索多组记录。根据记录集的数量,它将动态重新生成视图并显示每组记录。它还会针对每组记录生成“保存”和“删除”按钮,以便用户查看每个记录集,并可以从任何这些记录集中“保存”或“删除”数据。

这里我的问题是如何在这里处理按钮点击。任何建议

[Httppost]
 public ActionResult GetRecords(ContentsViewModel vmodel)
        {
         vmodel.GetRecords();

       return view(vmodel);
     }

1 个答案:

答案 0 :(得分:0)

我不太确定你想要实现的是什么,但是如果你想从表单中处理多个按钮,那么在视图中你需要给每个按钮命名。例如:

@using (Html.BeginForm())
{
    ...
    <input type="submit" value="Get Records" name="getrecords"/>
    <input type="submit" value="Save" name="save"/>
    <input type="submit" value="Delete" name="delete"/>
}

然后您可以使用以下方法在后期操作中测试这些值:

[HttpPost]
public ActionResult AppropriateActionNameHere(ContentsViewModel vmodel)
{
    if (!string.IsNullOrEmpty(Request["getrecords"]))
    {
        vmodel.GetRecords();
    }
    else if(!string.IsNullOrEmpty(Request["save"]))
    {
        //save record processing here
    }
    else if(!string.IsNullOrEmpty(Request["delete"]))
    {
        //delete record processing here
    }
    return View(vmodel); //Or perform the appropriate redirect or whatever you need to perform
}

另一种可能性是在视图上有多个表单,每个表单都会发回一个不同的动作。