2015-10-28 2 views
0

Я разрабатываю одностраничное веб-приложение, для которого я буду использовать MVC и нокаут. В _Layout.cshtml у меня будет панель меню, в которой пользователь может просматривать разные виды. Когда я нажимаю на элементы в меню, я буду вызывать метод контроллера и быть одностраничным приложением, мне придется возвращать частичный вид. Однако я смущен тем, как я могу загрузить возвращенный частичный вид именно в моей области просмотра. Если я использую Ajax.BeginForm, я могу указать UpdateTargetID, в котором мне нужно обновить частичное представление, но, как при щелчке пункта меню, это будет просто вызов метода сервера. Поэтому мне интересно, как я могу обновить частичный вид внутри области просмотра?Навигация по разным видам в приложении одной страницы

Считаете ли вы, что написать следующую функцию javascript для каждого пункта меню, что мне нужно сделать?

$('#menuitemId').click(function() { 
$.ajax({ 
    type: 'POST', 
    url: '@Url.Content("~/ControllerName/ActionName")', 
    data: objectToPass, 
    success: function (data) { 
     $('#divid').innerHTML = data; // data is partial view returned from controller 
    } 
}); 
} 

Кроме того, может кто-то момент мне/доля рабочей демо/хорошие документы веб-приложения одной страницы MVC и нокаута?

+0

что бы это сделать. да, 'ajax' &' innerHtml' & pass partialview от контроллера –

+0

url: '@ Url.Action ("ActionName", "ControllerName")', затем отредактируйте частичный вид этого действия –

+0

, и если вы хотите, то образец VS2013 будет вас обманывать предварительно построенный шаблон одностраничного приложения с использованием WebApi и Knockout –

ответ

0

Это выглядит хорошо для меня. Вы также можете сделать это проще:

$('#menuitemId').click(function() { 
    $('#divid').load('@Url.Content("~/ControllerName/ActionName")' + menuItemId); 
});