Как отобразить редактирование и детали в одном представлении в mvc

Я ищу частичное редактирование моей модели - сценарий заключается в том, что я хочу отобразить 5 полей, а 2 поля должны быть редактируемыми, а когда произойдет публикация, он должен обновить редактируемые поля. Представление строгого типа обеспечивает либо полностью редактируемый вид, либо подробный вид, как я могу иметь оба вместе. Любые советы или помощь будут оценены.

 <tr><td>Booking ID</td><td><%: Model.ID %></td></tr>
                    <tr><td>Transaction No.</td><td><%: Model.TransactionNumber %>&nbsp;(<%: Model.PaymentProvider %>)</td></tr>
                    <tr><td>Date</td><td><%: String.Format("{0:g}", Model.DateAdded) %></td></tr>
                    <tr><td>Name</td><td><%: ViewBag.account.FirstName %>&nbsp;<%: ViewBag.account.LastName %></td></tr>
                    <tr>
                        <td>
                            <div class="editor-label">
                                <%: Html.Label("Event") %>
                            </div>
                        </td>
                        <td>
                            <div class="editor-field">
                                <%: Model.Event.Name %><%: Model.Event.Description %>
                            </div>
                        </td>
                    </tr>
                    <tr><td valign="top">Address</td><td><%= HtmlFormatting.FormatAddress(ViewBag.address)%></td></tr>
                    <tr><td>Cost</td><td>&pound;<%: String.Format("{0:F}", Model.Cost) %></td></tr>
                    <tr><td>Status</td><td><%: ViewBag.status %></td></tr>

спасибо


person Mr A    schedule 15.07.2011    source источник
comment
Можно несколько примеров кода, пожалуйста?   -  person simonlchilds    schedule 15.07.2011
comment
О, ладно... Итак, что вам нужно обновить, и где находится ваш блок <% using(Html.BeginForm()) { }, и как вы используете свойство MVC3 ViewBag в проекте MVC2?   -  person simonlchilds    schedule 15.07.2011


Ответы (1)


Ваша реализация здесь неверна. Прежде всего, не используйте <table> везде для макета, вы можете использовать шаблон MVC, просто перемещайте теги div слева.

Вам нужен ViewModel, в котором вы можете ссылаться на свой объект Booking, который, как я полагаю, является объектом базы данных?

Что-то типа...

public class BookingViewModel
{
   public Booking Booking { get; set; }
}

И когда вы вызываете свой View из своего контроллера, передайте его

public ActionResult Index()
{
   return View(new BookingViewModel());
}

Затем вы можете добавить результат действия Post в свой контроллер, в котором вы можете обновить свои свойства.

[HttpPost]
public ActionResult Index(BookingViewModel model)
{
   //Update your properties
   return View(model);
}
person simonlchilds    schedule 15.07.2011