2013-10-27 3 views
0

Я упростил ниже для краткости.Действие возвращает PartialView, а не View

Когда я нажимаю действие actionlink, действие работает успешно, но возвращает только частичный вид на собственной странице, а не делает его в представлении. Любые предложения, в которых я ошибаюсь?

PartialView ActionLink

@Html.ActionLink("Click", "_Partial1") 

Контроллер

public ActionResult Index() 
{ 
    return View() 
} 

public ActionResult _Partial1() 
{ 
    ...do stuff 
    return PartialView(); 
} 
+0

Похоже, что вы ищете что-то связанное с AJAX, если хотите, чтобы оно отображалось в представлении или изменило ваше представление, чтобы использовать 'Html.Render (« _ Partial1 »)', так что он загружается с представлением. –

ответ

0

Вы можете использовать "Нажмите", как показано ниже. Убедитесь, что у вас есть ссылка на jQuery

<script type="text/javascript" src="/Scripts/jquery-1.8.2.min.js"></script> 

Изменить ссылку на действие, как показано ниже.

@Html.ActionLink("Click",       // linkText 
        "_Partial1",      // actionName 
        null,       // controllerName 
        new { @class = "detailsLink" } // htmlAttributes 
        ) 

Предоставьте элемент, в котором вы хотите визуализировать контент.

< DIV ID = "деталь" />

Invoke ниже JS, так что содержание будет загружено в представлении или аналогичном.

$(function() { 
     $('.detailsLink').click(function() { 
     $('#details').load(this.href); 
     return false; 
     }); 
    }); 

Это должно вызвать вас частичное действие и оказывает содержание на той же странице.

+0

Спасибо Raj, это выглядит как шаг в правильном направлении, но все равно возвращает тот же результат. Нужно ли мне больше делать? – user1405195

+0

Этот код работает для меня. Возможно, некоторые другие скрипты/скрипты мешают. Какой вид вы называете частичным представлением? Также вы запускаете любые другие скрипты, которые могут мешать? Лучший способ узнать, удалить все остальное в коде и попытаться применить мое решение. Если он работает, добавьте биты, пока не сможете создать проблему. Если это все еще не работает, используйте стандартное приложение для asp.net mvc vanilla и заставьте его работать с моим решением. Что вы опубликовали в своем вопросе, согласно моему решению. Также убедитесь, что у вас есть ссылка jquery. Убедитесь, что вы возвращаете частичный вид. – Spock

Смежные вопросы