常量400响应,将复杂的javascript对象发送到MVC控制器

时间:2015-12-17 17:28:05

标签: javascript c# ajax asp.net-mvc

又一个MVC问题。有一天,我会看看我的“MVC学习日”并微笑。

所以至关重要,正如标题所示;一个不变的400响应,我已经阅读了很多关于SO的帖子,但似乎仍然无法让我的逻辑工作。如果我可以告诉你逻辑,有人可能会帮助我。

控制器:

public JsonResult CreateExtendedProperty(ExtendedPropertyDefinitionViewModel extendedPropertyDefinitionViewModel)
{

   //I originally had JsonResult as ActionResult, still no change.
    var p = extendedPropertyDefinitionViewModel;

    //Temp
    //return Json(new { Success = false, ErrorMessage = "Error creating property" });
}

Ajax / Javascript:

        var extendedPropertyDefinition = JSON.stringify({
            DefinitionId: '0',
            Title: propertyInfo["Title"],
            OrganisationId: '0',
            Organisation: '',
            TypeId: propertyInfo["TypeId"],
            SortOrder: 0,
            IsEnumerated: propertyInfo["IsEnumerated"],
            AllowMultiSelect: propertyInfo["AllowMultiSelect"],
            IsDate: propertyInfo["IsDate"],
            LastUpdatedBy: "",
            LastUpdatedDateTime: new Date().toISOString(),
            CreatedBy: "",
            CreatedByDateTime: new Date().toISOString(),
            Options: {
                OptionId: '0',
                Option: '',
                OptionValue: '',
                SortOrder: 0,
                LastUpdatedBy: '',
                LastUpdatedDateTime: new Date().toISOString(),
                CreatedBy: '',
                CreatedByDateTime: new Date().toISOString(),
            }
        });

        $.ajax({
            url: "<%= Url.Action('CreateExtendedProperty', 'Organisation') %>",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            //traditional: true,
            type: 'POST',
            data: extendedPropertyDefinition,
            success: function(e) {
                alert('success');
                //Rebuild Grid? 
            },
            error: function(e) {
                alert('request failed (500)');

            }
        });

有效载荷: enter image description here

希望有人能走上正确的道路,所有人都会非常感激。

此致

1 个答案:

答案 0 :(得分:0)

因此,只需从评论中获得答案 - 您必须确保编译<%= Url.Action('CreateExtendedProperty', 'Organisation') %>。如果它位于单独的JS文件中,则必须从视图中传递它。否则它可能是一些其他问题(如果你使用Razor语法,它应该像@Url.Action("CreateExtendedProperty", "Organisation")