2016-08-17 83 views
1

我有一個AngularJS應用程序正在使用Formly生成表單。以下是模型數據的一個例子。將Angular Formly模型傳遞給c#Controller

{ 
    "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,這會使modelbinding無用。

+0

謝謝。因爲我們希望能夠創建任何類型的表單(這意味着提交的json字段在表單之間會有所不同),您能建議做什麼而不是接受任何有效的JSON嗎? – user1024941

+0

@ user1024941我會爲每個表單使用不同的端點。通常,'POST'或'PUT'端點具有特定的業務功能,因此使用每個表單的特定端點(業務操作)通常是一個健康的關注點分離。如果您願意,還允許您授權和驗證每個端點。 –

+0

雖然可以隨時創建新表單。我需要一個動態解決方案。 – user1024941