2014-12-08 2 views
0

Я хочу загрузить данные в фоновом режиме, пока пользователь находится на странице. После загрузки данных я хочу отобразить его, используя частичный вид. Так что я написал это:Отображение частичного представления после загрузки через Ajax в MVC

var serviceURL = '/Vm/GetInformation'; 
$.ajax({ 
    type: "POST", 
    url: serviceURL, 
    data: param = "", 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    data: { "id": id }, 
    //success: resetPartial() 
}); 

В моем контроллере:

public ActionResult GetInformation() 
{ 
    myCode... 
    return PartialView("_List", Costumer); 
} 

Так что это последний шаг, чтобы показать, что _List частичного вида в моем главном экране, который теперь заполнен данными о костюмерах (где мой функция Аякса есть)

Спасибо

+0

@Brian Ответ на сетевой вопрос должен помочь вам, но способ загрузки частичного представления осуществляется с помощью метода 'load()' из jquery. То, что вы могли бы использовать, это ваш url как строка, поскольку вы используете его, а затем укажите div для загрузки частичного представления '$ (" # divToLoad "). Load (url);' где url - ваша строка url на сервере –

ответ

1

Все, что вам нужно сделать, это заменить старое содержание:

success: function(d) { 
//d should be a string that's the HTML markup 
$("#someparentelementthatsurroundsinnercontent").html(d); 
} 

Или вы можете использовать любой из способов добавления содержимого, если вы хотите добавить его в конец списка. JQuery дает немало вариантов для этого.

+0

Итак, как должна выглядеть разметка HTML? Я написал что-то вроде 'var d = 'Html.RenderPartial (" ~/Views/Shared/_List.cshtml ", Model);';' – user2877820

+0

Ummm где d участвует? Вам не нужно вручную создавать d, это возвращаемый параметр из обратного вызова успеха ... Кроме того, этот оператор может оценивать только при первоначальном рендеринге, чего вы не хотите. –

0

Ваше действие контроллера не имеет параметров. Таким образом, вы можете удалить приведенные ниже строки из своего вызова ajax.

data: param = "", 
data: { "id": id }, 

Если у вас действительно есть какой-либо параметр идентификатор в своем действии контроллера, использовать его как

data: { id:id } 

ли в DIV в HTML, чтобы держать содержание частичного вида. В случае успеха используйте, как показано ниже:

success : function(result) { 
    $("#partialViewHolder").html(result); 
} 
Смежные вопросы