我在页面上有一个下拉列表框和一个输入框,输入相应的信息后提交如图后台ajax代码如下
1 //选择条件查询 2 function search() { 3 //当前选择的查询字段名称 4 var strFieldName = $('#select').val(); 5 //输入的值 6 var strFieldValue = $('#txt').val(); 7 8 $.ajax({ 9 type: 'POST', 10 url: "PeopleClubBureau/GetSearch", 11 cache: false, 12 data: { "strFieldName": strFieldName, "strFieldValue": strFieldValue }, 13 dataType: "json", 14 success: function (data) { 15 16 17 } 18 }); 19 }
这个提交我在controller中做断点可以获取到相应的值,也能查询到数据,但是前段就是不刷新,不知道怎么回事???新手刚学mvc希望大虾指教
这个问题已经解决了,用的是局部刷新技术
不刷新 啥意思,ajax 页面是不刷新的。
可以加一下qq详解一下吗?可能我说的不是很清楚757966892
ajax只能实现局部刷新,你要指定哪个部分刷新啊。
我试过了,在这个页面中有个table
@foreach (CH.SZ.Netting.Domain.Entities.PCB_Information item in Model) { <tr id="trData"> <td> <div align="center"> <input type="checkbox" name="fav" class="articleSelect" value="@item.PCBID" /></div> </td> <td> <div align="center">@item.IdCardNumber</div> </td> <td> <div align="center">@item.Education</div> </td> <td> <div align="center">@item.OECompany</div> </td> <td> <div align="center">@item.OECOCode</div> </td> <td> <div align="center">@(item.DimissionState == 0 ? "是" : "否")</div> </td> <td> <div align="center">@item.BusinessType</div> </td> <td> <div align="center">@item.BusinessInfo</div> </td> <td> <div align="center">@item.OENumber</div> </td> <td> <div align="center">@item.SENumber</div> </td> <td> <div align="center">@item.SEAddress</div> </td> <td> <div align="center">@item.SECompany</div> </td> <td> <div align="center">@item.SEType</div> </td> <td> <div align="center">@item.TaxAmount</div> </td> <td> <div align="center">@item.BailTime</div> </td> <td> <div align="center">@item.Note</div> </td> <td> <div align="center"> 【<a href="#" iconCls="icon-edit" plain="true" onclick="e_dlg(@item.PCBID)">编辑</a>】 </div> </td> </tr> }
也是刷新不了,这个怎么解决??
前段为何要全部的刷新,你在后端返回你想要的数据,然后在success中显示出来,就行了啊
你是说把data数据取出来然后去拼吗???我不是很明白啊!!菜鸟
数据已经在data里面了,你没有对data处理页面怎么会变化呢,
除了这种方式还有没有别的办法做这个查询操作
@独孤雄: 你把具体的要求说下吧,比如数据绑定到什么上,
$.post(); 我喜欢这样写
可不可以来个具体的实例我一直在解决这个问题但是还不想不到办法
你这个已经对了 只是你把后台穿过来的data操作就可以了啊 比如 赋值 或者拼接
$("#trData").html(data);
这么写控制器里面数据查询到了但是界面上不显示,写的对吗???
@独孤雄: 错了 你源码有吗 发到enpos@qq.com 我帮你调下
不处理 data 是不会刷新的
既然用Razor,为什么要使用 $.ajax 呢, 不觉得设计的思路需要调整一下
噢!!那这里我改怎么做,我还是第一次用这个mvc 视图,不是很理解!!
@独孤雄: 不要使用$.ajax,用表单提交的方式,定义个ACTION接收,然后返回table需要的MODEL数据,返回的数据应该是List<PCB_Information>吧
View: @model List<CH.SZ.Netting.Domain.Entities.PCB_Information> @{ ViewBag.Title = ""; } @using (Html.BeginForm()) { <select id="select" name="select"> ... </select> <input id="txt" name="txt" type="text" value="" /> <input type="submit" value="Query" /> } @foreach (CH.SZ.Netting.Domain.Entities.PCB_Information item in Model) { ...//table output } =================== Controller: [HttpPost] public ActionResult QueryTableData(string select,string txt) { List<CH.SZ.Netting.Domain.Entities.PCB_Information> items=new List<CH.SZ.Netting.Domain.Entities.PCB_Information>(); ...// create items return Vliew(items); }
@Yu:
success: function (data) { }
你ajax请求成功的方法都没写呢,这里就用js操作DOM来改变界面啊
??????还是拼啊!!!有没有razor的别的方式做这样的操作,跪求
asp.net mvc不是默认带了jquery ajax么?
哦 这个我知道,暂时没找到一个解决办法
@独孤雄:
在博客园随便搜索下(asp.net mvc ajax)就会有很多参考吧?
http://www.cnblogs.com/cnblogsfans/archive/2009/01/10/1373107.html