我已经开始尝试学习MVC 4并且粗略地学习它。当VS2010处于调试模式时,我设法让Flexigrid在数据库表中显示数据时工作,但是当我部署网站时,我的flexigrid根本没有显示任何记录。据我所知,它根本没有击中控制器。我已经没有关于如何解决这个问题的想法......
$('#MySkillList').flexigrid({
url: '/Home/ListMySkills',
dataType: 'json',
colModel: [
{
display: 'SkillName',
name: 'SkillName',
width: 180,
sortable: true,
align: 'left'
},{
display: 'SkillID',
name: 'SkillID',
width: 100,
sortable: true,
align: 'left',
},{
display: 'PersonID',
name: 'PersonID',
width: 100,
sortable: true,
align: 'left',
},{
display: 'Validated',
name: 'Validated',
width: 100,
sortable: true,
align: 'left'
}],
sortname: "SkillName",
sortorder: "asc",
usepager: true,
title: 'My Skills',
useRp: true,
rp: 15,
showTableToggleBtn: true,
width: 600,
height: 200
});
控制器
public ActionResult ListMySkills(FreeLancererSkills fModel)
{
string GUID = LoginGuid;
string SQL = "EXEC FreelancerSkills_Get '"+GUID+"'";
DBLayer DBL = new DBLayer();
DataSet DS = DBL.GetData(connString, SQL);
List<FreeLancererSkills> iList = new List<FreeLancererSkills>();
var model = new FreelancerSkillsCollection();
int i = 1;
foreach(DataRow DR in DS.Tables[0].Rows)
{
FreeLancererSkills iSkills = new FreeLancererSkills();
iSkills.LoginGuid = GUID;
iSkills.PersonID = DR["PersonID"].ToString();
iSkills.SkillID = DR["SkillID"].ToString();
iSkills.SkillName = DR["SkillName"].ToString();
iSkills.Validated = DR["Validated"].ToString();
iList.Add(iSkills);
i++;
}
TempData["LoginToken"] = GUID;
return JsonResult(iList.ToList(), 1, i);
}
private JsonResult JsonReturn(List<FreeLancererSkills> items, int page, int total)
{
return Json(
new
{page, total, rows = items.Select(x => new
{
id = x.SkillID,
// either use GetPropertyList(x) method to get all columns
cell = new object[] { x.SkillName, x.SkillID, x.PersonID, x.Validated }
})
}, JsonRequestBehavior.AllowGet);
}
希望有人能够帮我弄清楚发生了什么。
答案 0 :(得分:0)
如果您使用Chrome,则可以检查/Home/ListMySkills
中是否存在资源F12->Network tab
的http请求。请检查一下。
另一个检查点是使用firebug
来检查您加载数据的页面中是否有任何错误。
或者您可以在flexigrid.js中调试方法populate
函数,看看您的代码会发生什么。