Частичный просмотр MVC3 бритва

Я использую бритву MVC3, и в папке Views у меня есть 4 папки:

Общий

  • _Layout.cshtml

Folder2

  • Индекс.cshtml
  • UploadFile.cshtml

uploadFile является частичным представлением для index.cshtml folder2s

Folder3

  • Индекс.cshtml
  • _list.cshtml

Folder4

  • Индекс.cshtml
  • _CreateFile.cshtml

Я новичок в MVC3, поэтому у меня не сложный вопрос

Как я могу использовать UploadFile.cshtml в _list.cshtml и _createFile.cshtml Мне нужна та же функция в других папках, что и в UploadFile.cshtml

в UploadFile.cshtml у меня есть

     <script type="text/javascript">
    function createUploader() {
        var uploader = new qq.FileUploader({
            element: document.getElementById('FileUploader'),
            action: 'Chat/FileUpload',
            debug: true
        });
    }
    window.onload = createUploader;     
</script>   
        <div id="FileUploader">     
    <noscript>          
        <p>Please enable JavaScript to use file uploader.</p>
    </noscript>         
</div>

и я хочу использовать этот загрузчик в разных местах, а не в @Html.Action

как @Html.Partial или что-то в этом роде


person Irakli    schedule 09.02.2012    source источник


Ответы (2)


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

@Html.Action("UploadFileAction", "Folder2Controller", params)

Также обратите внимание, что рекомендуется начинать имена частичных представлений с подчеркивания, например _UploadFile. Это делает ваши ресурсы более заметными для других людей.

В противном случае, если вам не нужны действия, вы можете просто вызвать свое частичное представление с помощью метода Html.Partial. не проверял, но должно работать

@Html.Partial("~/Views/Folder2/UploadFile.cshtml", model)
person Chuck Norris    schedule 09.02.2012

Переместите партиал в каталог /Views/Shared. Это сделает его доступным из любого места. Вы можете использовать его с Html.Partial.

person linkerro    schedule 09.02.2012