0

我有一个 MVC2 EditStatesController :

     public JsonResult GetStates()
     {
         string statesToReturn = GetStates();  // returns "1: Alabama; 2: Alaska; 3:  Arizona; 4: Arkansas"
         return Json(statesToReturn);
     }

这是调用控制器的代码:

//get States
    var listOfStates = $.ajax({
        url:    '/EditStates/GetStates', 
        type: 'POST',
        async: false, 
        success: function(data, result) {
            if (!result) 
                alert('Failure to retrieve States.');
        }
    }).responseText;

下拉列表有元素列表,但最后一个元素有额外的“(双引号),所以最后一个州怀俄明州是怀俄明州”。

我搜索了其他问题,但没有找到类似的问题。你知道为什么会发生这种情况以及如何解决这个问题吗?谢谢你,珍妮

4

1 回答 1

0

搜索选项可以使用dataUrl并且可以选择buildSelect代替value您当前尝试使用的选项。

jqGrid 需要像下面这样构造 HTML 片段:

<select>
    <option value="1">Alabama</option>
    <option value="2">Alaska</option>
    <option value="3">Arizona</option>
    <option value="4">Arkansas</option>
</select>

因此,您可以直接提供来自控制器操作的数据,也可以提供任何其他输出,例如 JSON 输出:

[
    {"id":1, "name":"Alabama"},
    {"id":2, "name":"Alaska"},
    {"id":3, "name":"Arizona"},
    {"id":4, "name":"Arkansas"}
]

并使用buildSelect事件处理程序将 JSON 数据转换为带有<select>...</select>. 有关详细信息,请参阅答案

如果您选择这种方式,您将不会遇到任何特殊字符,如 '"'、':'、';' 等等。

于 2011-07-13T21:29:25.107 回答