使用Razor,Url.Action进行表格确认

时间:2014-04-25 15:57:54

标签: c# jquery asp.net-mvc forms razor

我可以找到许多不同的方法来向表单提交添加确认。在我的情况下,问题是要么他们提交表格,要么他们只是坐在那里,不做任何事情。任何建议,将不胜感激。我已将事件添加到表单onsubmit和按钮onclick,没有骰子。在这种情况下,ActionResult使用HttpPostRequest来发送表单数据。效果很好,只想添加一个有效的确认对话框。

<script>

function SubmitConfirm(){
    if (confirm("Are you sure want to submit this form?"))
        return true;
    else
        return false;     
}

  <form name="Form1" method="post" action="@Url.Action("PostForm", "MyController")"  id="Form1">
...

<input type="submit" value="Submit Posting" onclick="SubmitConfirm()" />

1 个答案:

答案 0 :(得分:1)

您可能希望在不重新加载页面的情况下显示该对话框,只是在您的提交成功而不是将它们带到新页面或实现某种条件刷新时。所以你可以设置你的表格......

<form name="Form1" id="Form1">
    ...
     <input type="button" id="submit" value="Submit Posting" />
</form>

使用jQuery设置你的实际提交......

$(document).ready(function () {
    $('#submit').click(function() { submit(); });
});

function submit() {
    if (SubmitConfirm())
    {
        var data = $('#Form1').serialize();

        $.post('MyController/PostForm', data, function(result) {
             if (result === 'success') {
                 // just using an alert here as a placeholder
                 alert('Your submission has been received!');
             }
        });
    }
}

这意味着在您的控制器中,您将拥有以下内容......

[HttpPost]
public ActionResult PostForm([form arguments])
{
    var success = // deal with form results, return true if everything is ok

    return new Content(success ? "success" : "failure");
}

总结一下,您需要提交表单数据,对其进行处理,并在用户不离开页面的情况下向用户提供有关是否成功处理的反馈,这也打开了大门,使其更容易重新开始 - 如有必要,提交数据并进行验证,无需用户离开页面或等待页面重新加载。

编辑:修正了拼写错误和修改后的提交逻辑。