微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我的对象没有通过 jQuery 的 ASP.NET MVC 发布

如何解决我的对象没有通过 jQuery 的 ASP.NET MVC 发布

我有以下 javascript:

<script>
function uploadPhotodoc() {
    var SmallPhotodoc = {};
    SmallPhotodoc.PK_Photodoc = $("#PK_Photodoc").val();
    SmallPhotodoc.FK_Site = $("#FK_Site").val();
    SmallPhotodoc.SeriesID = $("#SeriesID").val();
    SmallPhotodoc.ContentID = $("#ContentID").val();
    SmallPhotodoc.Notes = $("#Notes").val();
    SmallPhotodoc.Date = $("#Date").val();
     
    data = "{SmallPhotodoc: " + JSON.stringify(SmallPhotodoc) + "} ";

    alert(data);
    $.ajax({
        type: "POST",url: "/Containers/UploadPhotodoc/@ViewContext.RouteData.Values["org"]",data: data,contentType: "application/json; charset=utf-8",dataType: "json",success: function (response) {
            alert(response);
        },failure: function (response) {
            alert(response.responseText);
        },error: function (response) {
            alert(response.responseText);
        }
    });
     
}
</script>

我在 C# 中有以下课程:

public class SmallPhotodoc
{ 
    public Guid PK_Photodoc { get; set; }
    public Guid? FK_Site { get; set; }
    public string SeriesID { get; set; }
    public string ContentID { get; set; }
    public string Notes { get; set; }
    public DateTime? Date { get; set; }
}

我有以下签名要发送给:

public string UploadPhotodoc(string id,SmallPhotodoc model)

我已通过警报弹出窗口验证数据正确。但是当我进入 UploadPhotodoc 菜单时,模型始终为空。有没有人看到我的错误?请注意,我尝试将 [FromBody] 与模型参数一起使用,但没有做任何事情。它显示未在 Request 对象上发布任何表单。

解决方法

在JS中:

  function uploadPhotoDoc(id) {

    var SmallPhotoDoc = {};
    SmallPhotoDoc.PK_PhotoDoc = $("#PK_PhotoDoc").val();
    SmallPhotoDoc.FK_Site = $("#FK_Site").val();
    SmallPhotoDoc.SeriesID = $("#SeriesID").val();
    SmallPhotoDoc.ContentID = $("#ContentID").val();
    SmallPhotoDoc.Notes = $("#Notes").val();
    SmallPhotoDoc.Date = $("#Date").val();

    var model = {
        "id": @ViewContext.RouteData.Values["org"],"model": SmallPhotoDoc
    }

    alert(model);

    $.ajax({
        type: "POST",url: "/Containers/UploadPhotoDoc",data: model,datatype: "json",cache: false,success: function (response) {
            alert(response);
        },failure: function (response) {
            alert(response.responseText);
        },error: function (response) {
            alert(response.responseText);
        }
    });

}

在控制器的动作方法中:

public string UploadPhotoDoc(string id,SmallPhotoDoc model)
,

在注意到直接发布有效后,我将上传更改为以下内容,现在可以使用了:

$.ajax({
        type: "POST",url: "/Containers/UploadPhotoDoc/@ViewContext.RouteData.Values["org"]",data: $("#photodocform").serialize(),dataType: "json",error: function (response) {
            alert(response.responseText);
        }
    });

我仍然很想从那些确切知道我做错了什么的人那里看到它不起作用的原因。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。