If I understand properly, you want to pass dynamic data to API to search based on inputs entered by user.
My proposal for solution will be to create a structure of JSON object and pass it to POST method and read that data in your API method.
Example: Create JSON object structure, and fill values in this on Search click event. WhereTheProperty will be array type as you have dynamic values in that, based on rows added by user create array objects.
{ "AllWords": "value1, value2", "ExactPhrase": "value3", "AnyOfThese": "value4,value5", "NoneOfThese": "value6,value7", "ResultType": "AllResults", "WhereTheProperty": [ { "PickProperty": "Property1", "Contains": "ContainValue", "Text": "EnteredTextValue" }, { "PickProperty": "Property2", "Contains": "ContainValue", "Text": "EnteredTextValue" }, { "PickProperty": "Property3", "Contains": "ContainValue", "Text": "EnteredTextValue" } ] }
I'll assume that you are using AngularJS custom component for adding dynamic rows, use indexing in those rows to access row data.
I hope this answers your question.