保存并取消发布表格的按钮
我在Profile.cshtml上有2个按钮,即保存和取消。现在我的方法是这样的:保存并取消发布表格的按钮
[HttpPost]
public ActionResult Profile()
{
//code..
}
这将记录保存到数据库中。但问题是因为取消也发布在这里,记录无论如何都保存在数据库中。我该如何处理?
我经常使用传递给视图视图模型类,并在视图模型我:
public string submit { get; set; }
public bool SaveButtonClicked()
{
return this.submit.Equals("save");
}
public bool CancelButtonClicked()
{
return this.submit.Equals("cancel");
}
然后在控制器
[HttpPost]
public ActionResult Save(MyViewModel inputViewModel)
{
if(inputViewModel.SaveButtonClicked()) {}
blah.......
}
我的看法是这样的
@using (Html.BeginForm())
{
// Other stuff.
<input type="submit" name="submit" value="Save" />
<input type="submit" name="submit" value="Cancel" />
}
这对我来说真的很好。通过使提交按钮使用相同的名称,当按下任一按钮时,该名称将传递给视图模型的submit
属性。不知道是否有重复的名字是一个坏主意,但为了我的需要,这很好。
正是我在找的东西。谢谢杰森 – Jaggu
没有probs,很高兴我可以帮助:) –
这听起来像您的取消按钮有type
属性设置为submit
。这会使表单提交,就像您按下保存按钮一样。
你应该问自己的问题是你想要'取消'按钮做什么?如果仅仅是一个没有完成表单的情况,那么制作一个转到另一个页面的按钮可能会更好,否则如果你需要将它指向ActionResult,那么你将不得不重做一次。
随意问任何问题,如果你需要。
在视图中,您可以有2个表单(每个按钮一个),其中每个表单的动作发布到控制器中的相关操作方法。例如,在视图中:
@using (Html.BeginForm("Save", "Profile"))
{
<input type="submit" value="Save"/>
}
@using (Html.BeginForm("Cancel", "Profile"))
{
<input type="submit" value="Cancel"/>
}
然后在控制器:
[HttpPost]
public ActionResult Save()
{
...
}
[HttpPost]
public ActionResult Cancel()
{
...
}
如何取消按钮提交表单?你能发布你的保存和取消按钮代码吗? – Ali