Загрузите частичный вид в div MVC

У меня есть кнопка на моем MVC-представлении по клику, она должна добавить частичный вид в "div", вызывая действие, которое принимает объект как параметр

Я пробовал что-то вроде этого:

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

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

});

но он загружает actionresult/partial view на загрузку страницы не одним нажатием кнопки

Любая идея?

Ответ 1

Попробуйте использовать

@Url.Action

вместо

@Html.Action

Или вы можете использовать ajax, например:

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

Ответ 2

<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>

Ответ 3

Загрузка частичного представления в div MVC 4

Недавно я хочу загрузить Partal View в Div, после того, как много R & D и It работают для меня

$.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

Загрузка требует строки, вы генерируете переменный путь если вы посмотрите на исходный код, он генерирует что-то вроде:

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

но вы хотите:

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

код должен выглядеть так:

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

но, как я вижу, загрузка должна работать до тех пор, пока вы не нажмете #buttonId