Can You Just Update A Partial View Instead Of Full Page Post?


Answer :

Not without jQuery.

What you would have to do is put your Partial in a div, something like:

<div id="partial">     @Html.Partial("YourPartial") </div> 

Then, to update (for example clicking a button with the id button), you could do:

$("#button").click(function () {    $.ajax({        url: "YourController/GetData",        type: "get",        data: $("form").serialize(), //if you need to post Model data, use this        success: function (result) {            $("#partial").html(result);        }    }); }) 

Then your action would look something like:

public ActionResult GetData(YourModel model) //that's if you need the model {     //do whatever      return View(model); } 

Actually, if your Partial has a child action method, you can post (or even use an anchor link) directly to the child action and get an Ajax-like affect. We do this in several Views.

The syntax is

@Html.Action("MyPartial") 

The Child Action is

public ActionResult MyPartial() {     return PartialView(Model); } 

If your form posts to the child action

@using (Html.BeginForm("MyPartial")) {     ... } 

The Partial View will be updated with the partial view returned from the child action.

Jquery is still a legitimate way to update a partial. But technically, the answer to your question is YES.


As normal what I find when looking for things like this is people give too limited information so I will attempt to help here. The key is to set up a div with an ID you can append the return html to. Also when hitting your controller make sure it returns the partial. There are some potential problems with this method but on a good day it should work.

<div id="CategoryList" class="widget">     @{         Html.RenderPartial("WidgetCategories.cshtml");     } </div>            function DeleteCategory(CategoryID) {             $.get('/Dashboard/DeleteWidgetCategory?CategoryID=' + CategoryID,                 function (data) {                     if (data == "No") {                         alert('The Category has report widgets assigned to it and cannot be deleted.');                     }                     else {                         $('#CategoryList').html(data);                     }                  }             );         }       [HttpGet("DeleteWidgetCategory")]     [HttpPost("DeleteWidgetCategory")]     public IActionResult DeleteWidgetCategory(string CategoryID)     {         string Deleted = CategoryModel.DeleteCategory(CategoryID);          if (Deleted == "Yes")         {             return PartialView("WidgetCategories");         }         else         {             return this.Json("No");         }     } 

Comments

Popular posts from this blog

Are Regular VACUUM ANALYZE Still Recommended Under 9.1?

Can Feynman Diagrams Be Used To Represent Any Perturbation Theory?