MVC3模型使用自定义EditorTemplate和PartialView将pagedlist绑定到ViewModel我正在尝试生成包含在部分视图表面的分页结果。它使用ajax调用动态刷新。我在很多页面上复制了它,但在特定页面上,我需要绑定表行的值并使用ViewModel返回它。为此,我尝试使用EditorTemplate为PagedList集合使用自定义对象。问题是PartialView上显示的编辑器模板未正确命名为主ViewModel上的PagedList集合。如果我用代码解释它可能会更容易。主要观点如下:@modelRequestCreateViewModel@Html.Partial("_PagedCreateRequest")@Html.HiddenFor(x=>x.PageSize)@Html.HiddenFor(x=>x.PageNumber)因此,部分是:@modelIPagedList@Html.EditorFor(x=>Model)@Ajax.ImageActionLink("../../Content/images/first.gif","alttext","PageResults",new{Page=1,area="Admin",SortBy=Model.SortBy,SortDescending=Model.SortDescending,PageSize=Model.PageSize},new{style="margin-top:2px;"},new{@readonly="readonly"},newAjaxOptions{UpdateTargetId="gridContainer"})+其他分页器Ajax分页器图标和东西.CompanyName)@Html.DisplayFor(x=>x.CompanyISIN)@Html.HiddenFor(x=>x.CompanyISIN)@Html.DisplayFor(x=>x.ShareDesc)@Html.HiddenFor(x=>x.ShareDesc))@Html.DisplayFor(x=>x.Share类)@Html.HiddenFor(x=>x.ShareClass)ViewModel是:publicclassRequestCreateViewModel:ViewModelBase{publicIPagedListPagedList{get;放;}CreateRequestModel是:publicclassCreateRequestModel{publicintRequestId{get;放;}publicbool}publicstringCompanyName{get;放;}publicstringCompanyISIN{get;放;}公共字符串ShareDesc{得到;放;}publicstringShareClass{得到;放;但是当发回控制器(代码)时:[Authorize(Roles="Foo")][HttpPost]publicActionResultRequestCreate(RequestCreateViewModelmodel)IPagedList属性未绑定到ViewModel(显然),因为命名标准对于EditorTemplate是例如:[0]反正不是:PagedList[0]。无论我不能在ViewModel中实例化IPagedList接口的绑定副本。那么如何将信息从主视图返回给模型呢?我认为自定义ModelBinder可能是解决方案,但我对此经验很少。最终目的是确定表单上复选框的值。用户会选择还是不选择,我需要知道他们选择了什么!任何帮助是极大的赞赏。看看这篇文章:http://weblogs.asp.net/nmarun/archive/2010/03/13/asp-net-mvc-2-model-binding-for-a-collection.aspx秘诀就在控件上GenerateName为集合名,indexer为上面的C#学习教程:MVC3模型使用自定义EditorTemplate和PartialView将pagedlist绑定到ViewModel共享的所有内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多加关注——本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
