Загрузить частичное представление в div MVC - PullRequest
17 голосов
/ 20 марта 2012

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

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

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

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

});

но он загружает результат действия / частичное представление самой страницы, а не нажатие кнопки

Есть идеи?

Ответы [ 5 ]

22 голосов
/ 20 марта 2012

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

@Url.Action

вместо

@Html.Action

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

$('#buttonId').click( function() {
    $.ajax({
        type: 'POST',
        url: '@Url.Content("~/ControllerName/ActionName")',
        data: objectToPass,
        success: function (data) {
           $('#divid').innerHTML = data;
        }
    });
}
8 голосов
/ 26 августа 2015

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

Недавно я хочу загрузить Partal View в Div, после большого количества исследований и разработок, и это работает для меня

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

И в действии Partal ViewКод контроллера

public PartialViewResult ShowCategoryForm(string title)
{
    Model model = new Model();
    model.Title = title;
    return PartialView("~/Views/ControllerName/PartalView.cshtml", model);
}
7 голосов
/ 25 февраля 2013
<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 голосов
/ 20 марта 2012

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

$('#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

0 голосов
/ 29 мая 2019

При успешном вызове ajax функция добавления результата

ajax call =>

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

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

и контроллер должен возвращать частичное представление как результат

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...