MVC 3 覆盖表单操作后方法

本文关键字:方法 操作 表单 覆盖 MVC | 更新日期: 2023-09-27 18:37:16

缠绕在这个轴上。 所以我在表单中有几个按钮

@using (Html.BeginForm("Edit", "RunLogEntry", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<input id="create" class="art-button" type="submit" value="Save" />
<input id="create" class="art-button" type="submit" value="Cancel" />    
}

我想做的是当用户单击取消按钮时,它应该点击一个与开始形式。我可以在表单外有取消按钮,但这就是不是一个选项,因为它的物理位置需要接近休息窗体的控件。.还是应该使用链接按钮而不是提交类型?对此有任何想法将不胜感激。

MVC 3 覆盖表单操作后方法

如果你不需要在"取消"上发布任何数据,那么是的,只需使用带有Html.ActionLink方法的链接按钮,例如:

@Html.ActionLink("Link Text", "MyAction", "MyController")

您还可以使用 javascript 来更改表单的操作:

document.myform.action ="/MyController/MyAction";

。这当然需要你用JavaScript处理取消按钮的点击事件。

正如musefan所说,你可以把它作为一个链接

如果你想保留你的按钮,你将不得不在这个按钮上弄脏一些jQuery。

第一个解决方法是将"取消"按钮的 id 更改为"取消"而不是"创建"(每个元素都应该有一个唯一的 ID)。

<input id="cancel" class="art-button" type="submit" value="Cancel" />  

然后,您需要将单独的单击事件绑定到"取消"按钮以调用不同的操作。

$("#cancel").click(function(e) {
    e.preventDefault(); //Keep form from posting
    window.location.href = "REDIRECT URL";
    //If I want to post
    $.post("URL", data { ... });
});