Аннотация для модели Json в ASP.Net MVC - PullRequest
1 голос
/ 20 сентября 2010

Я работаю над приложением ASP.Net MVC2 и использую jsTree-Komponent для jQuery для визуализации дерева с флажками.

Для удобного выбора конкретных узлов мой JSON должен предложить "класс "атрибут.Вот пример того, как jsTree хочет использовать результат JSON:

[{"data":"Root1","attr":{"id":"10","class" : "jstree-checked"} ...

В контроллере я использую "return Json (tree);"чтобы создать Json и мой ViewModel, чем нужно свойство "класса".Свойство "class" не разрешено в C #, поскольку это зарезервированное слово.

Есть ли способ аннотировать атрибут ViewModel, как это происходит с XML?XMLExample:

[XmlAttribute("class")]
public string cssClass = "";

Или есть другие предложения для решения этой проблемы на стороне сервера?

Cheers, Helmut

1 Ответ

1 голос
/ 21 октября 2010

Я наконец решил это и сам отвечу на вопрос. Если бы мое описание по теме было более ясным, возможно, кто-то давно бы ответил на этот вопрос.

Вместо использования свойства «класс» (которое является зарезервированным ключевым словом) вы можете указать «@class». Вот небольшой фрагмент кода, который работает.

var tree = new JsTreeModel[] 
{
new JsTreeModel {
                data = new JsTreeData{title="Root1"},
                attr = new JsTreeAttribute { id="10",@class="jstree-checked" }
            }
}

Я использовал атрибут @class в разных сценариях (например, для указания css-класса в Html.Actionlink), но не перенес эти знания в пример JSON ...

...