Използвам axios get метод и предавам параметри към asp.net mvc контролера. Мога да чета индивидуални стойности. Но се опитвам да прочета всички стойности заедно като един обект. Нямам модел на изглед и се опитвам да чета параметрите като общ обект. Какъв ще бъде axios params тип данни, който да се използва в c# контролера като параметър? Създадох отделен метод за buildurl и валидиране на всеки параметър, но има ли опция за валидиране на всички наведнъж?
Това работи
Код за реакция
export const GetRequestCall = () => {
const getUrl = 'baseurl';
return new Promise((resolve, reject) => {
axios.get(getUrl, {
params: {
param1: 'abc',
param2: 'efg'
}
})
.then(response => {
}).catch(error => reject(error));
});
};
C# контролен код
//Read parameter as individual strings
[HttpGet("[action]")]
public async Task<string> GET(string param1, string param2)
{
try
{
var url = BuildUri( param1, param2);
}
}
Това не проработи
Код на контролера
//Read parameters as a single object to do some logic. Tried
//[FromBody]object, Object, String as parameters datatypes for data
[HttpGet("[action]")]
public async Task<string> GET(Array data)
{
try
{
var url = BuildUri( param1, param2);
}
}
private static string BuildUri(string BaseUrl, string param1, string param2)
{
var uriBuilder = new UriBuilder(BaseUrl);
var query = HttpUtility.ParseQueryString(uriBuilder.Query);
if (!string.IsNullOrEmpty(param1)) { query["param1"] = param1; }
if (!string.IsNullOrEmpty(param2)) { query["param2"] = param2; }
uriBuilder.Query = query.ToString();
var url = uriBuilder.ToString();
return url;
}
Намерих опция за изграждане на низ на заявка с двойки стойности на имена в C#, но не съм сигурен как да предам параметри на axios като обект на двойки стойности на имена към контролера на c#. Справка: https://codereview.stackexchange.com/questions/91783/constructing-a-query-string-using-stringbuilder
[FromUri]
. Вижте повече тук docs.microsoft.com/en-us/aspnet/web-api/overview/ - person jpgrassi   schedule 29.04.2019