我不知道我做錯了什麼。 那麼我有這種形式,它是複雜的看法的一部分。數據綁定MVC3
@{
var filtersAjaxOptions = new AjaxOptions
{
HttpMethod = "POST",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "clientList-body",
OnBegin = "clientList.filterRequestStart()",
OnComplete = "clientList.filterRequestComplete()",
OnSuccess = "clientList.filterRequestSuccess()"
};
}
<span class="clientFilters-filterValue inlineBlock">
@using (Ajax.BeginForm(
"Index",
"ClientList",
new {
ProductId = Model.ClientListViewModel.Filters.ProductId,
ClientFilter = Model.ClientListViewModel.Filters.ClientFilter,
BillFilter = Model.ClientListViewModel.Filters.BillFilter,
DateSortType = Model.ClientListViewModel.Filters.DateSortType,
SortDirection = Model.ClientListViewModel.Filters.SortDirection
},
filtersAjaxOptions,
new
{
id = "clientListDateFilter-form"
}
))
{
@Html.TextBoxFor(
m => m.ClientListViewModel.Filters.BeginDateRange,
new
{
@class = "dp-input textInput inlineBlock",
id = "dp-billDateFilterStart",
}
)
@Html.TextBoxFor(
m => m.ClientListViewModel.Filters.EndDateRange,
new
{
@class = "dp-input textInput inlineBlock",
id = "dp-billDateFilterEnd",
}
)
}
</span>
這裏的過濾器模型
public class FilterModel
{
public FilterModel()
{
ClientFilter = ClientsEnum.All;
BillFilter = ClientBillsEnum.All;
}
public string ProductId { get; set; }
public ClientsEnum ClientFilter { get; set; }
public ClientBillsEnum BillFilter { get; set; }
public DateTime? BeginDateRange { get; set; }
public DateTime? EndDateRange { get; set; }
public DateSortType? DateSortType { get; set; }
public SortDirection? SortDirection { get; set; }
}
這部分是ClientListController方法指數:
public ActionResult Index(FilterModel filters)
{
var clientListViewModel = GetClientListViewModel(filters, 1, 1, PageSize);
if (ControllerContext.HttpContext.Request.IsAjaxRequest())
return PartialView("Partial/ClientListBody", clientListViewModel);
return View(clientListViewModel);
}
每當我提出上面的形式,原來對我說田「 BeginDateRange「和」EndDateRange「爲空,其他字段設置正確。雖然,當我在手錶中插入Request.Form時,我可以看到整個數據。
更新1 所以我設置<全球化> Web.config中就象這樣:
<globalisation responseHeaderEncoding="utf-8" culture="en-US">
,但它不工作。與以前非常相同的結果。
更新2 此外,當我試圖把所有的routevalues數據爲@ Html.HiddenFor,控制器只看到了空。再次,Request.Form被填充prprly。
所以問題是:如何將表單數據綁定到傳入模型? TY
你可以發佈你的'filtersAjaxOptions'?你使用什麼文化?你可以發佈樣本日期嗎? – nemesv
filterAjaxOptions是好的,但確定,生病 –
我使用默認的MVC3文化,這是我相信「EN-US」? –