0

我有一个控制器,我有保存按钮单击事件。我使用相同的控制器和视图来添加和编辑目的。我的代码如下

[HttpPost]
            [Button(ButtonName = "Save")]
            [ActionName("Create")]
            [ValidateAntiForgeryToken(Salt = "PostData")]
            public ActionResult Save(Ntegra m_Ntegra,FormCollection form)
            {}

由于我在这里使用 ActionName("Create"),所以按钮不能用于 ActionName("Edit")。谁能告诉我如何才能达到我的要求!!感谢帮助...... :)

4

3 回答 3

0

和 并不是真的需要两个控制器动作createedit你可以有一个动作而不用ActionName属性装饰。

在单个控制器操作中,您必须检查id要保存的实体的,如果有一些值,那么它将被编辑否则创建。

[HttpPost]
public ActionResult Save(Ntegra m_Ntegra)
{
  if(m_Ntegra.Id == 0)
  {
    // create
  }
  else
  {
    // edit
  }
}
于 2012-06-20T09:14:27.933 回答
0

您可以使用名为 Save 的操作方法并传递模型。在操作方法中,您可以检查模型中是否存在 ID。如果有预定义的 ID,您可以更新记录,否则您可以创建新记录。在你为 FormCollection 中,在渲染表单时使用隐藏字段来存储 Id 字段。

public ActionResult Save(FormCollection form)
            {}
于 2012-06-20T08:03:29.667 回答
0

您可以使用一个视图,即Edit or Create,但您需要编写 2 个不同的控制器操作(创建、编辑)。

请参考MVC Music store CodePlex project哪个可以让您了解使用哪些约定并编写标准 MVC 代码

于 2012-06-20T07:55:22.593 回答