通过ajax发布数据时,Controller中的ViewModel将为空

时间:2019-02-13 13:02:52

标签: asp.net-core asp.net-core-mvc

我正在通过表单中的ajax发布数据,但它始终为null。 我在做什么是:-

在我的查看页面中:-

<script>
    $(document).ready(function () {

        $("#blogForm").submit(function (e) {

            e.preventDefault();
            alert("YOO");
            debugger;
            var fileInput = $('#authorImage')[0];
            var authorImage = fileInput.files[0];

            //var blogFile = $("#blogImages")[0];
            //var blogImages = blogFile.files[0];
            var editor = new Quill('#editor');
            var content = editor.getContents();

            var BlogData =
            {

                Title: $(".txttitle").val(),
                DestinationId: $("#ddlDesignation").val(),
                Category: $("#ddlCategory").val(),
                Author: $(".txtauthor").val(),
                AuthorDetail: $(".txtauthorDetail").val(),
                Date: $(".txtDate").val(),
                Contents: content
            }

            var CreateEditBlogsViewModel =
            {
                BlogDTO: BlogData
            }

            var param = JSON.stringify(CreateEditBlogsViewModel);

            //doing ajax request
            $.ajax({
                contentType: "application/json",
                method: "POST",
                dataType:"JSON",
                url: "@Url.Action("Create", "Blog")",
                data: param,
                success: function () {
                    alert("success");
                },
                error: function () {
                    alert("Error");
                }
            });

        });
    });
</script>

在我的控制器中:

   [HttpPost]
    public IActionResult Create(CreateEditBlogsViewModel BlogDTO,IFormFile authorimage,IFormFile images)
    {
        if (ModelState.IsValid)
        {
            _blogservice.Insert(BlogDTO.BlogDTO);
        }

        //rebinding values
        BlogDTO.DestinationSelectList = GetDestinationSelectList();
        BlogDTO.BlogCategorySelectList = GetBlogCategorySelectList();
        return View();

    }

我的模型如下:

 public class CreateEditBlogsViewModel
{
    public BlogsDTO BlogDTO { get; set; }

    public List<SelectListItem> DestinationSelectList { get; set; }

    public List<SelectListItem> BlogCategorySelectList { get; set; }
}

我也尝试在控制器中应用[FromBody],但是没有运气。我还必须发布2个单独的图像,但起初我只想要该数据,然后我将尝试发布图像。 请帮忙。

  

编辑:我已经使用CKEditor代替了主轴编辑器解决了这个问题,现在我将使用表单发布所有数据。

0 个答案:

没有答案