Load partial view in a div MVC

2020-02-09 06:52发布

I have a button on my MVC view on click of it, it should add a partial view in a 'div', by calling an action which takes an object as a parameter

I tried out some thing like this:

$('#buttonId').onclick(function(){

$('#divid').load(@Html.Action("ActionName","ControllerName",new{parameterName = objectToPass}))

});

but it loads the actionresult/partial view on page load itself not a click of button

Any Idea?

5条回答
对你真心纯属浪费
2楼-- · 2020-02-09 07:24

On ajax call success function append result

ajax call=>

url: 'controllername/methodname'
 success: function (partialviewresult)
{ 
          $('#div').append(partialviewresult);
}

  // inside controller
 public ActionResult methodname()
{
    return PartialView("~/a/a.cshtml");
}

and controller must return partialview as result

查看更多
男人必须洒脱
3楼-- · 2020-02-09 07:39

Load Partial View in a div MVC 4

Recently I want load Partal View in Div , after doing lots of R&D and It's work for me

$.ajax({
    type: 'POST',
    url: '@Url.Content("~/ControllerName/ActionName")',
    data: {
        title: title
    },
    success: function(result) {
        $('#divid').innerHTML = result;
    }
});

And In Partal View Action Controller Code

public PartialViewResult ShowCategoryForm(string title)
{
    Model model = new Model();
    model.Title = title;
    return PartialView("~/Views/ControllerName/PartalView.cshtml", model);
}
查看更多
地球回转人心会变
4楼-- · 2020-02-09 07:44

load require a string, you are generating a variable path if you look at your source code it generate something like:

$('#buttonId').click(function(){
    $('#divid').load(yoururl/);
});

but what you want is:

$('#buttonId').click(function(){
    $('#divid').load("yoururl/");
});

the code should look like:

$('#buttonId').click(function(){
    $('#divid').load('@Html.Action("ActionName","ControllerName",new{parameterName = objectToPass})');
});

but as I can see the load should be working until you click on #buttonId

查看更多
淡お忘
5楼-- · 2020-02-09 07:45
<script type="text/javascript">
    $(document).ready(function () {
        $('#buttonId').click(function () {
            $('#divid').load('@Url.Action("About", "Home")');
        });
    });
</script>

<a id="buttonId">Load partial view or Any URL</a>

<div id="divid" style="height:100px; width:400px";>

</div>
查看更多
Animai°情兽
6楼-- · 2020-02-09 07:48

Try to use

@Url.Action

instead of

@Html.Action

Or you can use ajax, for example:

$('#buttonId').click( function() {
    $.ajax({
        type: 'POST',
        url: '@Url.Content("~/ControllerName/ActionName")',
        data: objectToPass,
        success: function (data) {
           $('#divid').innerHTML = data;
        }
    });
}
查看更多
登录 后发表回答