У меня есть список объектов фотографии, которые я передаю в представление: -
Public class Photography
{
public Photography()
{
Name = "";
Description = "";
Category = "";
ImgUrl = "";
IsAccordion = false;
}
public string Name { get; set; }
public string Description { get; set; }
public string Category { get; set; }
public string ImgUrl { get; set; }
public bool IsAccordion { get; set; }
}
На мой взгляд, я просматриваю список следующим образом:
@foreach (var item in Model.Photographys)
{
<li class="span3" style="text-align: center">
<div class="thumbnail thumbnail-1">
<h3 style="margin-bottom: 10px;">@item.Name</h3>
<div class="">
<div class="">
<img src="@item.ImgUrl" alt="" style="visibility: visible; opacity: 1;">
</div>
</div>
<section>
<p>@item.Description</p>
<a href="#" class="btn btn-1">Read More</a>
<p>@item.IsAccordion</p>
</section>
</div>
</li>
}
Что я хочу сделать, так это иметь частичный вид, который позволяет мне редактировать свойства фотографии, которую я нажимаю. Я создал частичное представление, используя опцию "Редактировать". Это выглядит так:
@model aPhoto_web.Models.AdminPages.Photography
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>Photography</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(model => model.Name, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Name, "", new { @class = "text-danger" })
</div>
</div>
}
и т.п ...
Большинство partialView, о которых я читал, рендерится напрямую, когда рендерится parentview ... Это не то, что я хочу ... Я хочу, чтобы partialView появлялся только тогда, когда я каким-то образом передаю ему свой Photo-объект.
Я знаю, что это «большой» вопрос, но если кто-нибудь может указать мне правильное направление, это будет здорово! Спасибо.
ИЗМЕНИТЬ, чтобы уточнить: взгляните на этот код, где я добавил «RenderPartial» в конце цикла.
@foreach (var item in Model.Photographys)
{
<li class="span3" style="text-align: center">
<div class="thumbnail thumbnail-1">
<h3 style="margin-bottom: 10px;">@item.Name</h3>
<div class="">
<div class="">
<img src="@item.ImgUrl" alt="" style="visibility: visible; opacity: 1;">
</div>
</div>
<section>
<p>@item.Description</p>
<a href="#" class="btn btn-1">Read More</a>
<p>@item.IsAccordion</p>
</section>
</div>
@{
Html.RenderPartial("_editPhoto", item);
}
</li>
}
Конечно, это дает частичное представление для каждого элемента в цикле. Мне нужен метод, который передает объект, который я нажимаю, частичному ...
РЕДАКТИРОВАТЬ:
public ActionResult EditPhoto(string id)
{
var photo = RavenSession.Load<ContentPage>(id) as Photography;
return PartialView("_editPhoto", photo);
}