Как отправить значение в контроллер для получения данных обратно для просмотра Angular 5+? - PullRequest
0 голосов
/ 31 августа 2018

Я новичок в Angular, поэтому я не уверен, что это лучший подход. Я хотел бы опубликовать данные из моего представления в мой контроллер Api и значение, которое публикуется из моего представления, я хочу использовать его в качестве запроса для моего метода get. Если я жестко кодирую значение searchVal для своей функции, то и мой метод post, и метод get работают. Но как только я добавил public string searchVal { get; set; }, чтобы использовать значение из моего метода post в качестве запроса для моего метода get, мое приложение больше не отображает данные.

[Route("api/[controller]")]
public class OperationDataController : Controller
{
    public OperationDataController()
    {
        searchVal = "";
    }

    public string searchVal { get; set; }
    [HttpGet("[action]")]
    public async Task<Search> GetAllTweetsByName()
    {
        Twitter twit = new Twitter();
        twit.Initialise();
        var t = await twit.Fetch(searchVal, 50, true, SearchType.Search);
        return t[0];
    }

    [HttpPost("[action]")]
    public async Task<Search> GetAllTweetsByNamePost([FromBody] dynamic searchQuery)
    {
        var jsonString = JsonConvert.SerializeObject(searchQuery);
        var Input = JsonConvert.DeserializeObject<SearchQuery>(jsonString);
        searchVal = Input.Name;

        Twitter twit = new Twitter();
        twit.Initialise();
        var t = await twit.Fetch(Input.Name, 50, true, SearchType.Search);
        return t[0];
    }
}

Функция TypeScript:

getSocialDataTwitter() {
    return this.http.get<LeftOperatorPaneltwitter>(this.baseUrl + 'api/OperationData/GetAllTweetsByName');
}

1 Ответ

0 голосов
/ 31 августа 2018

Это должно работать на бэкэнде:

[HttpPost("[action]")]
public async Task<Search> GetAllTweetsByName([FromBody] SearchQuery searchQuery)
{
    searchVal = searchQuery.Name;

    Twitter twitter = new Twitter();
    twitter.Initialise();
    var t = await twitter.Fetch(searchVal, 50, true, SearchType.Search);
    return t[0];
}

Угловая сторона:

getSocialDataTwitter() {
    return this.http.post<LeftOperatorPaneltwitter>(this.baseUrl + 'api/OperationData/GetAllTweetsByName', searchQuery );

Кстати, мы ничего не знаем о вашей бэкэнд-среде. Это для .NET Core 2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...