MVC 3,Razor View-覆盖默认表单帖子

时间:2012-06-17 22:38:16

标签: c# asp.net-mvc-3 javascript-events razor

我遇到了一个小问题。我在一个表格中有这个按钮,它已经发布到一个控制器动作方法,例如Edit()。现在我想要一个取消按钮,它将发布到另一个动作方法,例如Edit(int id)。我试图覆盖Html.Begin表单中指定的默认帖子,所以我附加了一个Javascript事件,但事件没有事件命中。我知道如果我使用动作链接它就像一个魅力,但我担心让链接看起来像一个按钮。此外,我不能将链接放入不同的形式,以便在表单中使用不同的元素进行物理放置。 truley会批评任何提示。感谢

@using (Html.BeginForm("Edit", "RunLogEntry", FormMethod.Post, new { enctype = "multipart/form-data" })) { 

        <input id="create" class="art-button" type="submit" value="Save" /> 
        <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";

    });

1 个答案:

答案 0 :(得分:1)

cancel按钮的类型更改为button。这样,默认情况下它不会触发表单提交。你需要用JavaScript来处理它。

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

此外,在这种情况下,您不需要e.preventDefault();行。

$("#cancel").click(function(e) { 
    window.location.href = "REDIRECT URL";
});