2016-08-17 1 views
1

У меня есть приложение AngularJS, которое использует формально для создания формы. Ниже приведен пример данных модели.Прохождение Угловая формальная модель до C# Контроллер

{ 
    "form_field_17": "None Required", 
    "title": 1, 
    "firstName": "John", 
    "lastName": "Doe", 
    "email": "[email protected]", 
    "mobile": "1234567890", 
} 

Какой объект следует использовать в контроллере C# для его получения? У меня не может быть предопределенного класса, так как контроллер должен иметь возможность принимать любые данные json.

+0

Вы можете принять 'string', если вам нравится делать это без привязки к модели. В любом случае привязка к модели не принесет вам ничего в этом случае, потому что свойства могут быть вообще ... – ErikE

ответ

1

, если вы действительно хотите, чтобы быть в состоянии принять любой тип действительного JSON (и есть, вероятно, хороший бизнес и безопасность правили не делать этого), и вы хотите десериализации перед тем достигающего метода (а чем принимать исходную строку JSON), тогда у вас есть два варианта.

JToken, если с помощью Newtonsoft Json.NET:

public ResultType DynamicPayloadEndpoint(JToken dynamicObject) 

или использовать фактическое dynamic ключевое слово:

public ResultType DynamicPayloadEndpoint(dynamic dynamicObject) 

Как вы справляетесь обнажая, что данные в этой точке всегда будет сложно, но вы я смогу принять что угодно.

Имейте в виду, что при использовании ASP.NET MVC это делает привязку модели бесполезной.

+0

Спасибо. Поскольку мы хотим иметь возможность создавать любой тип формы (это означает, что представленные json-поля будут различаться между формами), можете ли вы предложить, что делать, а не принимать какие-либо действительные JSON? – user1024941

+0

@ user1024941 Я бы использовал отдельные конечные точки для каждой формы. Как правило, конечная точка «POST» или «PUT» имеет определенную бизнес-функцию, поэтому использование определенной конечной точки для каждой формы (бизнес-действия) обычно представляет собой здоровое разделение проблем. он также позволяет вам разрешать и проверять подлинность на конечную точку, если вы этого захотите. –

+0

Новые формы могут быть созданы в любое время. Мне нужно динамическое решение. – user1024941