Sobes.tech
Junior

Fale sobre o método ASP e seu uso em consultas.

sobes.tech IA

Resposta da IA

O ASP.NET Web Forms e MVC usam métodos de pedidos HTTP (GET, POST, PUT, DELETE) para interagir com o servidor. GET é usado para obter dados, POST para enviar dados, PUT para atualizar e DELETE para eliminar. No ASP.NET MVC, os métodos do controlador podem ser marcados com atributos HttpGet, HttpPost, HttpPut, HttpDelete para roteamento de pedidos de tipos correspondentes. Sem um atributo explícito, o padrão é GET.

Exemplo em ASP.NET MVC:

// Controlador para trabalhar com produtos
public class ProductsController : Controller
{
    // Método para obter a lista de produtos (tratamento de pedidos GET)
    [HttpGet]
    public ActionResult Index()
    {
        // Lógica para obter dados
        return View();
    }

    // Método para criar um novo produto (tratamento de pedidos POST)
    [HttpPost]
    public ActionResult Create(Product product)
    {
        // Lógica para guardar dados
        if (ModelState.IsValid)
        {
            // Guardar produto
            return RedirectToAction("Index");
        }
        return View(product);
    }

    // Método para atualizar um produto (tratamento de pedidos PUT, geralmente via API ou rotas personalizadas)
    // Em MVC padrão, geralmente usa-se POST para atualizar via formulário
    // [HttpPut]
    // public ActionResult Update(int id, Product product) { ... }

    // Método para eliminar um produto (tratamento de pedidos DELETE, geralmente via API ou rotas personalizadas)
    // Em MVC padrão, geralmente usa-se POST para eliminar via formulário ou GET com confirmação
    // [HttpDelete]
    // public ActionResult Delete(int id) { ... }
}

// Exemplo de formulário na view para pedido POST
@model YourNamespace.Product // Se usar um modelo

@using (Html.BeginForm("Create", "Products", FormMethod.Post))
{
    @Html.AntiForgeryToken() // Proteção contra XSRF

    <div class="form-group">
        @Html.LabelFor(model => model.Name)
        @Html.EditorFor(model => model.Name, new { htmlAttributes = new { class = "form-control" } })
        @Html.ValidationMessageFor(model => model.Name, "", new { @class = "text-danger" })
    </div>

    <div class="form-group">
        <input type="submit" value="Criar" class="btn btn-primary" />
    </div>
}

No contexto do ASP (Active Server Pages, tecnologia obsoleta antes do .NET), "o método ASP" poderia referir-se a objetos de requisição embutidos, como Request.Form (para dados de pedidos POST) ou Request.QueryString (para dados de GET). No ASP.NET, eles estão encapsulados em objetos HttpRequest.

No ASP.NET Core, os mesmos princípios de métodos HTTP são usados, mas o roteamento e o tratamento de pedidos são implementados com middleware e atributos de roteamento/métodos HTTP nos métodos do controlador ou nos manipuladores de API mínimos.