2015-07-09 6 views
1

Я не часто использовал частичные виды, но я понимаю основы, но у меня есть проблема.Как использовать частичный вид?

У меня есть главная страница с Модальной формой. В этой модальной форме я хотел бы использовать частичный вид для отображения как изображения, так и нижнего колонтитула. Однако мне нужно вручную писать в заголовке и содержимом тела. Так что в основном это будет выглядеть следующим образом:

Частичный вид:

-Image- -поперечник Я хочу -Footer- от записи

Однако, когда я пытаюсь сделать это, и включают в себя такие вещи, в качестве части тела или рендеринга это не работает. Есть ли у кого-нибудь идеи о том, как я могу это сделать?

Modal:

<div id="helpModal" class="modal fade" role="dialog"> 
      <div class="modal-dialog"> 
       <div class="modal-content"> 
        @Html.Partial("ModalLayoutPartial")   
        <h1 style="text-align:center"> HELP </h1> 
        <div class="modal-body"> 
         <p>Help help helperton</p> 
        </div> 
       </div> 
      </div> 
     </div> 

Частичный вид:

<div class="modal-header"> 
    <img src="~/Content/Images/Logo/ap_tick_green.png" /> 
</div> 
<body> 

</body> 
<div class="modal-footer"> 
    <a href="#">Need more help? Contact us here.</a> 
</div> 
+0

Извините, но можете ли вы, пожалуйста, расширить свой вопрос. Я не понимаю в чем проблема? –

+0

Проблема в том, что я не могу использовать RenderBody или RenderSection, я получаю следующую ошибку: Файл «~/Views/Shared/ModalLayoutPartial.cshtml» не может быть запрошен напрямую, потому что он вызывает метод «RenderSection». –

+0

Я считаю, что это потому, что я использую @section на главной странице, а затем пытаюсь отобразить раздел на частичном представлении. –

ответ

1

Вы можете передать модель в парциальное так в вашем случае сделать модель строку:

@Html.Partial("ModalLayoutPartial", "text to show") 

Тогда в частично укажите модель (и используйте ее):

@model string 

<div class="modal-header"> 
    <img src="~/Content/Images/Logo/ap_tick_green.png" /> 
</div> 
<body> 
    @Html.Raw(Model) 
</body> 
<div class="modal-footer"> 
    <a href="#">Need more help? Contact us here.</a> 
</div> 

Пожалуйста, обратите внимание, вы не должны использовать тег тела в выше - a html document should only have one body tag

Или вы могли бы пройти в классе:

public class ModalInfo 
{ 
    public string Title { get; set; } 
    public string Body { get; set; } 
} 

Тогда звоните своим парциальное:

@Html.Partial("ModalLayoutPartial", new ModalInfo() { Title = "HELP", Body = "Help help helperton" }) 

Показать ваши частичные

@model ModalInfo 

<div class="modal-header"> 
    <img src="~/Content/Images/Logo/ap_tick_green.png" /> 
</div> 
<div class="body"> 
    <h1 style="text-align:center">@Model.Title</h1> 
    <div class="modal-body"> 
     <p>@Model.Body</p> 
    </div> 
</div> 
<div class="modal-footer"> 
    <a href="#">Need more help? Contact us here.</a> 
</div> 
+1

Хороший ответ, однако теперь я бы хотел использовать мою модель на каждом представлении, которое у меня есть сейчас или оно не работает. Я думаю, что просто собираюсь жестко кодировать модальные формы. Слишком много. Спасибо хоть –

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