'What to return after Ajax call asp.net

After ajax call is completed and the model is posted successfully to the controller, what should the controller return?

In my case, I just want to add an item to the wishlist and that's it, no redirect.



Solution 1:[1]

Controller can return a message or somethingelse for sure that your action did successful

Solution 2:[2]

This question you need to know two points, 1.What type can asp.net core return? 2.What type can ajax can receive.

First, Asp.net core can return the following types: Specific type, IActionResult, ActionResult<T>, Learn more details in this document.

Second, Ajax can send and receive information in various formats, including JSON, XML, HTML, and text files.

From your question, I think you want to recive the model from controller and add it to the wishlist in the view. So, In my opinion, You can directly return the specified model, Asp.net core will serialize models to Json Automatically. Then you can use it in your ajax success method.

simple demo:

<div class="text-center" id="Test">
    <h1 class="display-4">Welcome</h1>
    <p>Learn about <a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p>
</div>

<button onclick="GetDetails(2)">submit</button>

@section Scripts{
    <script>
        function GetDetails(id){
             var postData = {
                    'ProductId': id,    
                };
            $.ajax({          
                type: "Post",
                url: "/Home/privacy",
                data: postData,              
                success: function (res) { 
                    document.getElementById("Test").innerHTML = res["name"];
                }
     });
                
    }
</script>
}

Controller

List<Student> students = new List<Student>()
            {
                new Student()
                {
                    Id="1",
                    Name="Jack",
                    Country="USA"
                },
                new Student()
                {
                    Id="2",
                    Name="Nacy",
                    Country="Uk"
                },
                new Student()
                {
                    Id="3",
                    Name="Lily",
                    Country="Cn"
                }
            };

[HttpPost]
        public Student Privacy(string ProductId)
        {
            var result = students.Where(x => x.Id == ProductId).FirstOrDefault();
            return result;
        }

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 mhhabibi
Solution 2 Xinran Shen