Asp.net mvc 带JQGrid的ASP.net Mvc 2.0

Asp.net mvc 带JQGrid的ASP.net Mvc 2.0,asp.net-mvc,jqgrid,Asp.net Mvc,Jqgrid,我必须在JQGrid中使用combobox实现内联编辑,我必须从数据库中填充combobox中的数据没有硬编码值我已经编写了视图部分,我使用Linq to Sql作为模型,但无法为此编写控制器。我有一个这样的示例,但在示例库中使用了设计模式,我不必使用它。所以任何人都可以帮助我编写bcontroller部分。 我的观点是 <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %> <!

我必须在JQGrid中使用combobox实现内联编辑,我必须从数据库中填充combobox中的数据没有硬编码值我已经编写了视图部分,我使用Linq to Sql作为模型,但无法为此编写控制器。我有一个这样的示例,但在示例库中使用了设计模式,我不必使用它。所以任何人都可以帮助我编写bcontroller部分。 我的观点是

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <link href="../../Content/jquery-ui-1.10.4.custom.min.css" rel="stylesheet" type="text/css" />
    <link href="../../Content/ui.jqgrid.css" rel="stylesheet" type="text/css" />
    <script src="../../Scripts/JQGrid/jquery-1.11.0.min.js" type="text/javascript"></script>
    <script src="../../Scripts/JQGrid/jquery.jqGrid.min.js" type="text/javascript"></script>
    <script src="../../Scripts/JQGrid/jquery.jqGrid.src.js" type="text/javascript"></script>
    <script src="../../Scripts/JQGrid/grid.locale-en.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            $("#Grid").jqGrid(
      { url: '/Default/GetData',
          datatype: 'json',
          mtype: 'GET',
          colNames: ['Id', 'UserName', 'Organization', 'Report Type', 'EmailID', 'Action'],
          colModel: [

            { name: 'Id', index: 'Id', align: 'center', width: 30, editable: false },

           { name: 'UserName', index: 'UserName', align: 'center', width: 150, editable: true, edittype: 'select', formatter: 'select', editoptions: { dataUrl: '/Default/UserSelect' } },

           { name: 'Organization', index: 'Organization', align: 'center', width: 200, editable: true, edittype: 'select', formatter: 'select', editoptions: { dataUrl: '/Default/OrganizationSelect' }, editrules: { required: true} },

           { name: 'Report Type', index: 'Report Type', align: 'center', width: 200, editable: true, edittype: 'select', editoptions: { value: 'MN:Monthly; YR:Yearly', defaultValue: 'Montyhly'} },

           { name: 'EmailID', index: 'EmailID', align: 'center', width: 250, editable: true, edittype: 'text', editoptions: { size: 30, maxlength: 40} },

           { name: 'act', width: 100, align: 'center', sortable: false, formatter: 'actions', formatoptions: { keys: true, editbutton: true}}],


          pager: jQuery('#pager'),
          rowNum: 10,
          rowList: [5, 10, 20, 50],
          sortname: 'Id',
          sortorder: "asc",
          viewrecords: true,
          caption: 'Regen Users'

      });
        });


    </script>

    <title>Index</title>
</head>
<body>
    <div>
    <table id="Grid">
    </table>
    </div>
    <div id="pager">
    </div>
</body>
</html>
}


请帮助我根据以下jqGrid文档为数据url UserSelect编写控制器操作。

Setting the editoptions dataUrl parameter: The editoptions dataUrl parameter is valid only for element of edittype:select. The dataUrl parameter represent the url from where the html select element should be get. 
When this option is set, the element will be filled with values from the AJAX request. The data should be a valid HTML select element with the desired options - something like:
 <select> 
<option value='1'>One</option> 
<option value='2'>Two</option> 
...
</select>
设置editoptions数据URL参数:editoptions数据URL参数仅对edittype:select的元素有效。dataUrl参数表示应从中获取html select元素的url。
设置此选项后,元素将填充来自AJAX请求的值。数据应该是一个有效的HTML select元素,具有所需的选项,例如:
一
二
...

如下所示:未测试

public JsonResult UserSelect()
        {
            List<User> users=db.GetUsers();
            return Json(users,JsonRequestBehavior.AllowGet);
        }
publicJSONResult用户选择()
{
List users=db.GetUsers();
返回Json(用户,JsonRequestBehavior.AllowGet);
}
视图:jqGrid

editoptions: { dataUrl:'<%= Url.Action("xxxx","xxxx") %>',
                 buildSelect: function(data) {
                     var response = jQuery.parseJSON(data.responseText);
                     var s = '<select>';
                     if (response && response.length) {
                         for (var i = 0, l=response.length; i<l ; i++) {
                             var ri = response[i];
                             s += '<option value="'+ri+'">'+ri+'</option>';
                         }
                     }
                     return s + "</select>";
                 }
                }
editoptions:{dataUrl:'',
buildSelect:函数(数据){
var response=jQuery.parseJSON(data.responseText);
var s='';
if(响应和响应长度){

对于(var i=0,l=response.length;我已经尝试过了,但没有得到所需的结果…我不知道如何在我的代码中使用dis,你是否有任何错误或dropdownlist没有填充。分享你所尝试的。错误将出现在GetUsers()上方法,请详细说明我必须在何处声明此方法,关于我的代码编写您的数据库访问逻辑,以获取用户列表并从操作方法返回我可以在控制器页面中定义GetUser()方法,还是必须在其他地方定义它
editoptions: { dataUrl:'<%= Url.Action("xxxx","xxxx") %>',
                 buildSelect: function(data) {
                     var response = jQuery.parseJSON(data.responseText);
                     var s = '<select>';
                     if (response && response.length) {
                         for (var i = 0, l=response.length; i<l ; i++) {
                             var ri = response[i];
                             s += '<option value="'+ri+'">'+ri+'</option>';
                         }
                     }
                     return s + "</select>";
                 }
                }