我正在使用包含一些其他模型(實體)爲每個局部視圖的視圖模型。 我通過傳遞ViewModel中的實體來渲染局部視圖。我的部分視圖有幾個字段和一些按鈕。在點擊按鈕(這是我的局部視圖內)表單被張貼回來的數據在一個子實體,而我的viewmodel始終回發爲空... 我需要的數據出現在我的viewmodel發回。在回發模型和視圖模型內丟失數據在回發
所有視圖是強類型:
代碼:
public class OrdersVM
{
public FiltersVM filterCriteria { get; set; }
public IEnumerable<MeterInventory> meters { get; set; }
public string assignTo { get; set; }
public IEnumerable<SelectListItem> AssigneeOptions { get; set; }
}
public partial class Meters
{
public int MTRNO { get; set; }
public string LOCName { get; set; }
}
public class FiltersVM
{
public string Center { get; set; }
public DateTime? DueDate { get; set; }
}
查看代碼
@model OrdersVM
@{
ViewBag.Title = "Orders";
}
@using (Html.BeginForm())
{
<div>
@Html.Partial("~/Views/Base/Filters.cshtml", Model.filterCriteria)
</div>
@foreach (var item in Model.meters)
{
<table>
<tr>
<td>
@Html.Encode(item.LOCNAME)
</td>
</tr>
</table>
}
}
控制器代碼
[HttpPost]
public ActionResult Index(OrdersVM orders, FiltersVM filters)
{
//orders is null
//filters has values
}
感謝Olivehour。我正在使用部分視圖「Filters.cshtml」。並呈現相同。
下面是局部視圖的代碼:
@model ViewModels.FiltersVM <fieldset>
<legend>Order Assignment</legend>
<table id="tbl1" class="tableforcontrols">
<tr>
<td>
<div class="editor-label">
@Html.LabelFor(model => model.LDC)
</div>
</td>
<td>
<div class="editor-field">
<input type="submit" value="Search" id="btnSearch" name="button" />
</div>
</td>
<td>
<div class="editor-field">
<input type="submit" class="cancel" value="Reset" id="btnReset" name="button" />
</div>
</td>
</tr>
</table> </fieldset>
我與單個參數「OrdersVM」(父視圖模型)嘗試,但沒有運氣。
[HttpPost]
public ActionResult Index(OrdersVM orders)
但如果我的父視圖模型傳遞給它被保持在OrdersVM.filterCriteria但不適合特性的數據(IEnumerable的米,串assignTo和可數AssigneeOptions)
@Html.Partial("~/Views/Base/Filters.cshtml", Model)
我的局部視圖新的MVC。請讓我知道是否有人找到解決方案。
在此先感謝。
感謝Olivehour。我會嘗試通過鏈接...我已更新我的問題,請看看。 – HKGR 2012-01-05 09:03:40
任何更新? – HKGR 2012-01-05 11:01:53