我有一个控制器,我有一个保存按钮点击事件。我使用相同的控制器和视图添加和编辑目的。我的代码如下所示
[HttpPost]
[Button(ButtonName = "Save")]
[ActionName("Create")]
[ValidateAntiForgeryToken(Salt = "PostData")]
public ActionResult Save(Ntegra m_Ntegra,FormCollection form)
{}
因为我在这里使用ActionName("创建")所以按钮不能用于ActionName("编辑")。任何人都可以告诉我如何能够实现我的要求! 谢谢你的帮助......:)
答案 0 :(得分:0)
您可以使用一个视图,例如Edit or Create
,但您需要编写2个不同的Controllor操作(创建,编辑)。
请参考MVC Music store CodePlex project
,它可以让您了解使用的约定和编写标准MVC代码
答案 1 :(得分:0)
您可以使用名为Save的操作方法并传递模型。在操作方法中,您可以检查模型中是否存在ID。如果有预定义的ID,您可以更新记录,否则您可以创建新记录。 IN You对于FormCollection,在渲染表单时使用隐藏字段来存储Id字段。
public ActionResult Save(FormCollection form)
{}
答案 2 :(得分:0)
对于create
和edit
,实际上并不需要两个控制器操作,您可以使用ActionName
属性进行单个操作而不进行装饰。
在单一控制器操作中,您必须检查要保存的实体的id
,如果有某个值,则将编辑其他创建。
[HttpPost]
public ActionResult Save(Ntegra m_Ntegra)
{
if(m_Ntegra.Id == 0)
{
// create
}
else
{
// edit
}
}