【发布时间】:2015-07-12 19:41:32
【问题描述】:
我正在创建拍卖。 Auction 对象有很多对象作为属性,例如:
Auction
-[Property]
-[Neighborhood]
-[Agent]
-source
-clientId
-reserve
Property
-Street
-City
-State
-Zip
Agent
-Name
-Email
-Telephone
Neighborhood
-Name
-HOA Fee
所以基本上我必须创建一个多标签视图来更新拍卖对象。
选项卡是:拍卖、财产、代理、社区
不幸的是,我被要求将其他对象的属性放在选项卡中。例如,Neighborhood 选项卡将具有 Property.Zip,Property 选项卡将具有 Auction.ClientId。
所以我所做的是为视图中的每个选项卡创建一个部分。下面是一个简化的示例。
@Model Auction
@using(Html.BeginForm("Update", "Auction", HttpMethod.Post, new {})
{
<div class="panel">
@Html.Partial("_AuctionTab")
</div>
<div class="panel">
@Html.Partial("_PropertyTab")
</div>
<div class="panel">
@Html.Partial("_AgentTab")
</div>
<div class="panel">
@Html.Partial("_NeighborhoodTab")
</div>
<button>Submit</button>
}
部分都使用拍卖模型。
这是 _PropertyTab 部分的示例:
@Model Auction
@Html.LabelFor(m=> m.ClientId)<br/>
@Html.EditorFor(m=> m.ClientId)<br/><br/>
@Html.LabelFor(m=> m.Property.Street)<br/>
@Html.EditorFor(m=> m.Property.Street)<br/><br/>
@Html.LabelFor(m=> m.Property.City)<br/>
@Html.EditorFor(m=> m.Property.City)<br/><br/>
@Html.LabelFor(m=> m.Property.State)<br/>
@Html.EditorFor(m=> m.Property.State)<br/><br/>
@Html.LabelFor(m=> m.Property.Zip)<br/>
@Html.EditorFor(m=> m.Property.Zip)<br/><br/>
@Html.LabelFor(m=> m.Property.Street)<br/>
@Html.EditorFor(m=> m.Property.Street)<br/><br/>
问题是,当我点击提交时,除了第一个部分的值之外,返回到更新操作的拍卖大部分为空。至于该怎么做,我有点想把头撞到墙上。
基本上,提交按钮必须保存整个拍卖。这里有什么方法和最佳实践的建议吗?
谢谢!
【问题讨论】:
标签: c# asp.net-mvc forms razor viewmodel