我正在开发一个MVC 2项目,我想使用jqGrid来编辑网格的单元格。 当我编辑一个单元格,然后按下回车键,我就会看到“No Url is Set” My View看起来像;MVC jqGrid - 无法获取单元格编辑工作“无法设置URL”
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
JobTitles
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<fieldset>
<legend>Job Titles Maintenance</legend>
<table id="list" class="scroll" style="font-size: 11px;"></table>
<div id="pager" class="scroll" style="text-align:center;font-size: 11px;"></div>
</div>
</fieldset>
<%--jqGrid Code - refer http://www.trirand.com/blog/jqgrid/jqgrid.html --%>
<script type="text/javascript">
$(document).ready(function() { reloadGrid(); });
function reloadGrid() {
var $grid = $("#list");
$grid.jqGrid({
url: '<%: Url.Action("GetCurrentJobTitles", "Maintenance")%>',
datatype: 'json',
mtype: 'POST',
colNames: ['JobTitleId', 'Title', 'Head Office Based', 'Usage'],
colModel: [
{ name: 'JobTitleId', index: 'JobTitleId', key: true, editable: true, editrules: { readonly: true } },
{ name: 'Title', index: 'Title', width: 280, align: 'left', sortable: true, editable: true},
{ name: 'HeadOfficeFlag', index: 'HeadOfficeFlag', width: 100, align: 'left', sortable: true, editable: true, edittype: 'checkbox' },
{ name: 'Usage', index: 'Usage', width: 40, align: 'left', sortable: true, editable: false }],
cellEdit: true,
cellSubmit: 'remote',
cellUrl: '<%: Url.Action("UpdateJobTitle", "Maintenance")%>',
pager: $('#pager'),
rowNum: 25,
rowList: [10, 25, 50, 100, 500],
sortname: 'Title',
sortorder: "asc",
viewrecords: true,
caption: 'Job Titles',
height: 575
});
}
</script>
</asp:Content>
我的控制器看起来像;
public ActionResult UpdateJobTitle(CellEditingViewModel viewModel)
{
var jobTitle = JobTitle.GetById(viewModel.JobTitleId);
switch (viewModel.PropertyName)
{
case "Title":
jobTitle.Title = viewModel.PropertyValue.ToString();
break;
case "HeadOfficeFlag":
jobTitle.HeadOfficeFlag = Convert.ToBoolean(viewModel.PropertyValue);
break;
}
try
{
jobTitle.Update();
}
catch
{
return this.Json(false);
}
return this.Json(true);
}
我的猜测是当你编辑并按下回车键时,从jqGrid发布的对象与你的控制器期望的视图模型不匹配,本站有一个很好的MVC内联编辑示例:http:// tpeczek .codeplex.com/SourceControl/latest#trunk/ASP.NET MVC示例/ jqGrid示例/ jqGrid /检出vi他们使用的新型号/活页夹。 –