c# - MVC4 模型验证然后使用 JQuery 将 JSON post 提交到外部 URI

标签 c# asp.net-mvc asp.net-mvc-4 visual-studio-2012

我需要提交一个简单的表单并验证模型。如果模型有效,我想序列化该模型并使用自定义 header 通过 POST 将其发送到外部 (https) Web 服务。最后,我将处理从请求返回的响应并显示适当的消息。

我正在完美地验证 Controller 中的模型并序列化对象,但似乎无法找到一种方法来创建对外部 URI 的 JSON post 请求。有没有办法使用 JQuery.ajax 或 $.post 来做到这一点。也许我缺少一个关键的 ajax 参数来实现这一点。

谢谢

最佳答案

因此,根据对问题的澄清,您可以执行以下操作:

定义将验证对象的 Controller 方法

public ActionResult TestMethod() {
    // do server-side validation
    return Json(aValidObject);
}

您向 Controller 发送 ajax post,以便验证您的模型,然后返回 json 结果。

$.ajax({
    url: '@Url.Action("TestMethod")',
    data: some_data,
    type: "post",        
    success: function (result) {
        // result is a valid json object
        doExternalPost(result);
    }
});

添加自定义标题并进行外部发布

function doExternalPost(o) {
    $.ajax({
        url: 'http://some_external_url',
        data: o,        
        dataType: 'json',
        beforeSend: function (xhr) {
            xhr.setRequestHeader('custom_header', 'some_value');
        },
        success: function() {
            // post is sucessful 
        },
        error: function (xhr, errorType, exception) {
            var errorMessage = exception || xhr.statusText || xhr.responseText;
            alert('An error has occured: ' + errorMessage);
        },
    });
}

关于c# - MVC4 模型验证然后使用 JQuery 将 JSON post 提交到外部 URI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16138202/

相关文章:

c# - 我应该把 KeepAlive 放在我的 finally block 中吗?

asp.net-mvc - MVC 4 安装失败 - 离线或使用 Web 安装程序

c# - Linq join iquery,defaultifempty的使用方法

c# 用于 asp.net web 界面的 windows 身份验证

c# - 静态页面 (.html) 与 ASP.NET 页面 (.aspx)

asp.net-mvc - 在 asp.net mvc 中存储和检索用户设置

c# - 从 ASP.NET Controller 返回动态 jsonobject

html - 为什么 ASP.NET Core 应用程序未在同一域中的 iframe 中加载?

ASP.NET MVC CAPTCHA 实现

c# - log4net 输出文件但不输出到调试窗口