如何在mvc中显示单个视图的编辑和详细信息

时间:2011-07-15 09:19:00

标签: asp.net-mvc asp.net-mvc-2 strongly-typed-view

我正在寻找部分编辑我的模型 - 场景是我要显示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>

日Thnx

1 个答案:

答案 0 :(得分:2)

这里的实施完全错了。首先,不要在任何地方使用<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);
}