C# 使用Razor、Url.Action进行表单确认

C# 使用Razor、Url.Action进行表单确认,c#,jquery,asp.net-mvc,forms,razor,C#,Jquery,Asp.net Mvc,Forms,Razor,我可以找到许多不同的方法向表单提交添加确认。我的问题是,要么他们无论如何都要提交表格,要么他们只是坐在那里什么都不做。如有任何建议,将不胜感激。我已经在表单onsubmit和按钮onclick,no dice中添加了事件。本例中的ActionResult使用HttpPostRequest发送表单数据。很好,只想添加一个有效的确认对话 <script> function SubmitConfirm(){ if (confirm("Are you sure want to su

我可以找到许多不同的方法向表单提交添加确认。我的问题是,要么他们无论如何都要提交表格,要么他们只是坐在那里什么都不做。如有任何建议,将不胜感激。我已经在表单onsubmit和按钮onclick,no dice中添加了事件。本例中的ActionResult使用HttpPostRequest发送表单数据。很好,只想添加一个有效的确认对话

<script>

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

函数SubmitConfirm(){
如果(确认(“您确定要提交此表格吗?”))
返回true;
其他的
返回false;
}


...

您可能希望在提交成功时不重新加载页面就显示该对话框,而不是将其转到新页面或执行某种条件刷新。所以你可以把你的表格设置成这样

<form name="Form1" id="Form1">
    ...
     <input type="button" id="submit" value="Submit Posting" />
</form>
这意味着在控制器中,您将有以下内容

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

    return new Content(success ? "success" : "failure");
}
总而言之,您需要提交表单数据,对其进行处理,并在用户从未离开页面的情况下,向用户反馈是否成功处理了表单数据,这也为在必要时重新提交数据和进行验证打开了大门,同样,用户无需离开页面或等待页面重新加载


编辑:修复了打字错误和修改的提交逻辑。

Thanx用于响应。有一个小的输入错误,(SubmitConfirm()),但在“$('#Form1')的圆括号下还有一条“死亡红线”,表示“预期:”。不确定如何修复它。@user116923,好的,更新了答案。有关内容应如何序列化的示例,请参阅并确保所有字段上都有
name
属性。基本上,大括号是不必要的,只是为了避免出现
onclick
submit
问题,我让您将submit按钮附加到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");
}