MVC 3覆盖表格后动作方法

时间:2012-06-15 18:23:25

标签: c# asp.net-mvc-3

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

@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" />    
}

我想要做的是当用户点击取消按钮时,它应该点击一个不同的动作方法 开始形式。我可以在表单外面有取消按钮,但那样 不是一种选择,因为它的实际位置需要接近休息 窗体的控件..或者我应该使用链接按钮而不是提交类型?对此有任何想法。

2 个答案:

答案 0 :(得分:4)

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

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

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

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

...这当然要求你用javascript

处理取消按钮的点击事件

答案 1 :(得分:1)

正如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 { ... });
});