JSON passing different Model

EB 1 Reputation point
2022-01-19T20:07:59.007+00:00

Can someone tell me how to do this?

I have a view with 2 models. I am trying to post 1 of the models back to the controller. But I am not sure how to do that. I have tried to use data: JSON.stringify(LOsBorrower) but this does not even hit the controller for some reason when debugging. I want to post model LOsBorrower (LOb).

Here is my controller, view and model.

Model:

public class LOb
{
 public LoanOrder LoanOrder { get; set; }
 public LOsBorrower LOsBorrower { get; set; }
}

Controller:

public ActionResult TestMutipleModel()
{
return View();

}

public PartialViewResult Test(LOsBorrower cat)
{

return PartialView("_S_Borrower");
}

View:

@model Intranet.Models.LOb


@{
    ViewBag.Title = "TestMutipleModel";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
    @Scripts.Render("~/bundles/jqueryui")
    @Styles.Render("~/Content/cssjqryUi")
    <script type="text/javascript">
        //$('#S_Borrower').hide();

        $(function () {
            $("#add_borrower").click(function (e) {
                $.ajax({
                    type: "Get",
                    url: '/Loan/Test',
                    //data: JSON.stringify(LOs),
                    data: { loanID: $("#LoanID").val(), fname: $("#sfname").val() },
                    dataType: "html",
                    success: function (data) {
                        $("#S_Borrower").html(data); // HTML DOM replac
                    }
                });
            });
        });


    </script>
    <h2>TestMultipleModel</h2>

    @Html.EditorFor(m => m.LoanOrder.Officer)
    <br />


        @Html.AntiForgeryToken()
        @Html.EditorFor(m => m.LOsBorrower.Email)
        <br />

    <button type="submit" id="add_borrower" class="btn btn-primary" data-dismiss="modal">Add</button>
}
Developer technologies | ASP.NET | ASP.NET Core
0 comments No comments
{count} votes

2 answers

Sort by: Most helpful
  1. Bruce (SqlWork.com) 77,926 Reputation points Volunteer Moderator
    2022-01-19T20:52:47.86+00:00

    you don't cancel the form submit on the button click, so you are starting an ajax call, then doing a form submit. if you don't want submit, change to button:

     <button type="button" id="add_borrower" class="btn btn-primary" data-dismiss="modal">Add</button>
    
    0 comments No comments

  2. Igor Daflon do Couto 1 Reputation point
    2022-01-25T02:40:28.057+00:00

    @EB
    Try this way

    View:

    function TestPost() {  
      
        var LoanID = $("#LoanID").val();  
        var sfname = $("#sfname ").val();  
      
        $.ajax({  
             url: '@Url.Action("Test", "YourController")',  
             data: { LoanID : LoanID, sfname : sfname },  
             type: "post",  
             dataType: "json",  
            success: function (data) {  
                console.log(data)  
            }  
        })  
      
    }  
    

    Controller:

    public JsonResult Test(string LoanID, string sfname){  
      
        //Do something  
      
        return Json();  
      
    }  
    
    0 comments No comments

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.