我在visual studio 2010开发环境下创建了一个Web项目,采用ASP.NET MVC架构,视图页面中使用了Jquery开发库的Flexigrid插件。在vs 2010下能够正确读取数据库并在页面中显示表格,然后将项目部署到windows 2003的IIS6.0上,在IIS的“默认网站”中创建了“SpeechWeb”目录,项目文件均在该目录中,在客户端浏览器输入地址“http://172.40.15.26/SpeechWeb/default.aspx”能够正确运行相关网页,网页上的Flexigrid插件能够运行,但是却不能路由进入Speakerlib Controller的GetSpeakerList Action方法中进行数据操作,因此视图页面显示“无法获取数据”的错误提示,表格中没有显示任何数据。
在该页面的Javascript代码中调用了$.ajax({url: "<%=Url.Action("GetSpeakerList","Speakerlib")%>"}),能够正确进入Speakerlib Controller的GetSpeakerList Action中。
不知道$("#speakerlist").flexigrid(option)和 $.ajax()在参数url的设置上有什么区别吗?还是其他什么原因造成flexigrid无法路由到controller的Action方法?
调用$("#speakerlist").flexigrid(option)的代码如下:
$(document).ready(function () {
var option = {
height: gh, //flexigrid插件的高度单位为apx
width: w,
url: "<%=Url.Action("GetSpeakerList","Speakerlib")%>", //ajax url,ajax方式对应的url地址
colModel: [
{ display: '编码', name: 'SpeakerID', width: 60, sortable: true, align: 'left' },
{ display: '姓名', name: 'Name', width: 100, sortable: true, align: 'left' },
{ display: '年龄', name: 'Age', width: 100, sortable: true, align: 'left' },
{ display: '性别', name: 'Gender', width: 100, sortable: true, align: 'left' },
{ display: '国籍', name: 'State', width: 100, sortable: true, align: 'left' },
{ display: '创建时间', name: 'CreateTime', width: 100, sortable: true, align: 'left' },
{ display: '状态', name: 'Status', width: 100, sortable: true, align: 'left', process: formatStatus }
],
buttons: [
{ name: 'Add', displayname: "新增基本信息", bclass: 'Add', onpress: call },
//{ name: 'Edit', displayname: "编辑-", bclass: 'Edit', onpress: call },
{name: 'Delete', displayname: "删除", bclass: 'Delete', onpress: call }
],
searchitems: [
{ display: '编码', name: 'SpeakerId', isdefault: true, operater: "Eq", reg: /^[\d]+$/ },
{ display: '姓名', name: 'Name', operater: "Like" }
],
sortname: "CreateTime",
sortorder: "desc",
usepager: true,
useRp: true,
rowbinddata: true,
showcheckbox: false
};
var grid = $("#speakerlist").flexigrid(option);
});
调用$.ajax()的代码如下:
function del(pid) {
jConfirm("确删除编码为"+pid+"的所有记录?", "选择", function (r) {
if (r) {
var parm = { Id: pid };
$.ajax({
type: "POST",
url: "<%=Url.Action("GetSpeakerList","Speakerlib")%>",
data: $.param(parm),
success: function (msg) {
$("#speakerlist").flexReload({});
jAlert("删除成功", "确定");
}
});
}
});
}