Включая несколько просмотров на одной странице - PullRequest
0 голосов
/ 17 марта 2011

У меня есть контроллер, который отображает представление (~ / Views / Component / Create.aspx) без проблем.

Когда отображается это представление, я бы хотел:

(1) когда пользователь нажимает на ссылку в модальном всплывающем окне (здесь нет проблем), отображается представление (НЕ ЧАСТИЧНОЕ ПРОСМОТР), но полное представление aspx из (~ / Views / TransportType / Index.aspx)

Почему? Потому что (~ / Views / TransportType / Index.aspx) на 100% так и должно быть, и он сам отображает частичные представления из контроллера TransportType. Итак, на одном экране я даю пользователю возможность (Вставить / Обновить / Редактировать / Удалить), не переходя на различные экраны.

или

(2) внутри (~ / Views / Component / Create) я бы согласился на рендеринг <% = Html.RenderAction ("Index", "TransportType")%> где-то на странице внутри div, который я могу переключаться с помощью JavaScript. Только когда я пытаюсь использовать этот подход, я получаю CS1502: лучшее совпадение перегруженного метода для 'System.IO.TextWriter.Write (char)' имеет недопустимые аргументы.

Примечание: я могу без проблем перейти непосредственно к www.MySite.com/TransportType/Index, но если я попытаюсь использовать методологию, описанную в # 2 выше, я получу следующую ошибку выше.

Я попробовал все. Я потратил весь свой день на то, чтобы понять это. Я могу легко реализовать быстрое исправление, но тогда это сведет на нет весь смысл продажи, и я убежден, что моя компания относительно MVC и ее преимуществ по сравнению с code-behind. Пожалуйста, помогите, или мне, возможно, придется откатиться в мир кода ASP.NET позади.

Итог: «Кто-нибудь знает, как отображать представления внутри представлений? Или я задаю неправильный вопрос.

Вот код:

1 Ответ

1 голос
/ 17 марта 2011

Если вы используете jquery-ui, вы можете использовать метод диалога.

например:

<a href="<%=Url.Action("Index","TransportType") %>" id="transports">Types</a>
<div id="window"></div>
<script type="text/javascript">

$(document).ready(function(){
    $("#transports").click(function(){
        $("#window").load(this.href).dialog({title:"transport list"});
        return false;
    });
});
</script>

Редактировать: Для использования Html.RenderAction не ставьте = перед и ставьте; в конце, поскольку ничего не возвращается: <% Html.RenderAction("Index", "TransportType"); %>

...