GehoMP Ответов: 1

Представление в веб-api не существует в текущем контексте.


Я работаю в WebApi в ASP.NET ядро , но затем, когда я пробую следующий код, return View говорит, что его не существует.

[HttpGet]
        [AllowAnonymous]
        public IActionResult ResetPassword(string recToken, string email)
        {
            // If password reset token or email is null, most likely the
            // user tried to tamper the password reset link
            if (recToken == null || email == null)
            {
                ModelState.AddModelError("", "Invalid password reset token");
            }
            //            return View();
            return Ok("Vista ResetPassword"); // <-- When I put return View it says "View does not exists in current context"
        }


TBH-это мой первый раз, когда я работаю с ним, но в Google есть некоторые проекты, где Api получил представления, работающие, но по какой-то причине, когда я использую представление, оно выдает эту ошибку, и параметры исправления также помечены как не существующие. Почему это происходит или есть какой-то способ перенаправить??

Что я уже пробовал:

Я попытался поместить представление, которое я ссылаюсь на проект, но строка return View все еще помечена как не существующая.

ZurdoDev

Если вы не скажете ему, какой вид, то он будет искать вид с тем же именем, что и ваш метод, в данном случае ResetPassword, я полагаю.

GehoMP

Я пробовал поставить вид, в этом случае сбросил пароль и ничего, его все равно маркировка "вид не существует".

ZurdoDev

Тогда вы, вероятно, неправильно написали его. Например, это будет не так, как у вас есть в приведенном выше коде: "Vista ResetPassword."

F-ES Sitecore

Представление будет доступно только в том случае, если ваш класс наследуется от "контроллера". Это для стандартного .net MVC, я не знаю о ядре WebApi, но я сомневаюсь, что контроллер WebApi будет иметь встроенную поддержку представлений, поскольку они не склонны возвращать HTML.

GehoMP

..- чувак, ты был прав. Мой контроллер получил ControllerBase, затем я просто оставил слово Controller, и все ошибки были изгнаны, затем я запустил api, и он без проблем запустил представления. Спасибо. :Д

1 Ответов

Рейтинг:
4

GehoMP

Как сказал F-ES Sitecore, контроллер должен наследовать от контроллера. По умолчанию ядро WebApi наследуется от ControllerBase. Изменив его с ControllerBase, чтобы контроллер возвращает представление в силе.

public class CuentasController : Controller//Base
    {
        [HttpGet]
        [AllowAnonymous]
        public IActionResult ResetPassword(string recToken, string email)
        {
            // If password reset token or email is null, most likely the
            // user tried to tamper the password reset link
            if (recToken == null || email == null)
            {
                ModelState.AddModelError("", "Invalid password reset token");
            }
                        return View();
        }
        }
}