【问题标题】:MVC 3, Razor View- override default form postMVC 3,Razor View-覆盖默认表单帖子
【发布时间】:2012-06-17 22:38:16
【问题描述】:

我遇到了一个小问题。我在一个已经发布到控制器操作方法的表单中有这个按钮,例如Edit()。现在我想要一个取消按钮,它将发布到不同的操作方法,例如Edit(int id)。我正在尝试覆盖Html.Begin 表单中指定的默认帖子,因此我附加了一个 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="submit" value="Cancel" />       
        }


    $("#cancel").click(function(e) { 
    e.preventDefault(); //Keep form from posting 
    window.location.href = "REDIRECT URL";

    });

【问题讨论】:

  • 请使用 Firebug 或其他控制台检查错误。您是否在&lt;script type='text/javascript'&gt;&lt;/script&gt;> 中附上了javascript 代码?您的代码看起来不错。

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


【解决方案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";
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-06
    相关资源
    最近更新 更多