asp.net-mvc-3 – Asp.net Mvc3 webgrid和分页
发布时间:2020-12-15 20:09:13 所属栏目:asp.Net 来源:网络整理
导读:我正在尝试学习 Asp.net mvc.我知道它与形式的不同,我需要改变我的思维方式.我的问题是关于webgrid.当我将webgrid添加到我的页面并点击搜索按钮与Post发送它渲染表与寻呼机等等.但是寻呼机上的链接不是发布形式,而是链接,我丢失了所有表单的数据. 控制器有两
我正在尝试学习
Asp.net mvc.我知道它与形式的不同,我需要改变我的思维方式.我的问题是关于webgrid.当我将webgrid添加到我的页面并点击搜索按钮与Post发送它渲染表与寻呼机等等.但是寻呼机上的链接不是发布形式,而是链接,我丢失了所有表单的数据.
控制器有两个索引方法,一个是get和另一个用于post.为了让我什么也不做,我只需要创建一个新的viewmodel,在这种情况下,Search类并设置它来查看.对于我的帖子方法,我抓住我的视图模型做搜索并设置填充的viewmodel来查看. 问题:webgrid将寻呼机渲染为链接,因此它将进入索引获取,但由于它不是发布请求,我没有填写任何表单字段,我的搜索将不提供相同的结果集. 可能示例代码可以更好地解释它. 视图: <form action="" method="post"> Esas no : @Html.TextBoxFor(x=>x.Name) Yil : @Html.TextBoxFor(x=>x.Year) <input type="submit" value="Search" /> <hr /> @ViewBag.Message <hr /> @{ var grid = new WebGrid(Model.Results,rowsPerPage:5);} @grid.GetHtml(tableStyle:"table",htmlAttributes:new {id="tbl"} ) </form> 这是我的控制器:搜索发生在索引Post方法,它只有我的viewmodel类. private ISearchContext _sc; public MyController(ISearchContext sc) { _dc = dc; } // // GET: /Dava/ public ActionResult Index() { var search = new Search(); ViewBag.Message = ""; return View(search); } [HttpPost] public ActionResult Index(Search search) { Search sres = _dc.SearchFromRepository(search); ViewBag.Message = String.Format("Count:{0} ",sres.Results.Count); return View(sres); } 搜索模型类如下: public class Search { public int Year { get; set; } public string Name { get; set; } public IList<Item> Results { get; set; } public Search() { Results = new List<Item>(); } } 解决方法
解决此问题的一种方法是使用javascript并订阅任何寻呼机链接的点击事件,然后获取所需页面的值,将其注入到表单上的隐藏字段中,并将表单提交到服务器,以便另外两个值也被发送.
因此,首先在搜索视图模型上添加一个页面可空整数属性,并将相应的隐藏字段添加到将包含所选页码的表单中: @Html.HiddenFor(x => x.Page,new { id = "page" }) 那么所有你需要的是一个小的JavaScript片段到页面中订阅寻呼机链接的.click事件: $(function () { $('tfoot a').click(function () { // when the user clicks on any of the pager links // try to extract the page number from the link and // set the value of the hidden field var page = this.href.match(/page=([0-9])+/)[1]; $('#page').val(page); // submit the form so that the POST action is invoked // passing along the search criteria (Name and Year) along // with the page hidden field value to the Index action $('form').submit(); // cancel the default action of the link which is to simply redirect // to the Index action using a GET verb. return false; }); }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 在构建时尝试构建ASP MVC视图时出错
- asp经典 – 经典ASP文本替换和UTF-8编码
- asp.net – 使下拉列表项不可选
- asp.net-mvc – mvc ActionLink中的RouteValueDictionary /
- asp.net – 模型项的类型为CookMeIndexViewModel,但需要一个
- 最佳实践:ASP.NET中的CSS或主题?
- asp.net-mvc – MVC4 SimpleMemberhip’提供商遇到了未知错
- asp.net – 通过web.config覆盖machine.config
- asp.net-mvc – 如何从umbraco mvc中的表面控制器添加查询字
- asp.net-mvc-3 – asp.net mvc的telerik grid的开源替代品?
推荐文章
站长推荐
热点阅读