Pass Model To Controller using Jquery/Ajax

后端 未结 4 1403
执念已碎
执念已碎 2020-11-29 07:33

I am trying to pass my model to a controller using JQuery/Ajax, I\'m not sure how to do this correctly. So far I have tried using Url.Action but the model is

4条回答
  •  野趣味
    野趣味 (楼主)
    2020-11-29 07:55

    //C# class
    
    public class DashBoardViewModel 
    {
        public int Id { get; set;} 
        public decimal TotalSales { get; set;} 
        public string Url { get; set;} 
         public string MyDate{ get; set;} 
    }
    
    //JavaScript file
    //Create dashboard.js file
    $(document).ready(function () {
    
        // See the html on the View below
        $('.dashboardUrl').on('click', function(){
            var url = $(this).attr("href"); 
        });
    
        $("#inpDateCompleted").change(function () {   
    
            // Construct your view model to send to the controller
            // Pass viewModel to ajax function 
    
            // Date
            var myDate = $('.myDate').val();
    
            // IF YOU USE @Html.EditorFor(), the myDate is as below
            var myDate = $('#MyDate').val();
            var viewModel = { Id : 1, TotalSales: 50, Url: url, MyDate: myDate };
    
    
            $.ajax({
                type: 'GET',
                dataType: 'json',
                cache: false,
                url: '/Dashboard/IndexPartial',
                data: viewModel ,
                success: function (data, textStatus, jqXHR) {
                    //Do Stuff 
                    $("#DailyInvoiceItems").html(data.Id);
                },
                error: function (jqXHR, textStatus, errorThrown) {
                    //Do Stuff or Nothing
                }
            });
    
        });
    });
    
    //ASP.NET 5 MVC 6 Controller
    public class DashboardController {
    
        [HttpGet]
        public IActionResult IndexPartial(DashBoardViewModel viewModel )
        {
            // Do stuff with my model
            var model = new DashBoardViewModel {  Id = 23 /* Some more results here*/ };
            return Json(model);
        }
    }
    
    // MVC View 
    // Include jQuerylibrary
    // Include dashboard.js 
    
    
    // If you want to capture your URL dynamically 
    
    
    
    //OR @Html.EditorFor(model => model.MyDate)

提交回复
热议问题