none
Passar textbox para um controller e gravar na tabela oracle RRS feed

  • Pergunta

  • Prezados

    Fiz um projeto novo  MVC, C#. Fiz uma view para o cliente, fiz um controller para o cliente. A view tem apenas com um textbox. pois o meu intuito é aprender antes de começar a fazer o projeto real. Quero que quando clicar num botão gravar do tipo submit ele passe pelo controller no actionresult EnvioCliente que está no controller abaixo. Marquei um debug ali e ele não entra, somente entra no index do controller. Abaixo do controller mostro a view que está muito simples.

    segue abaixo o controller  e a view

    CONTROLLER

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;

    namespace MvcApplication4.Controllers
    {
        public class ClienteController : Controller
        {
            //
            // GET: /Cliente/

            public ActionResult Index()
            {
                return View();
            }
            [HttpPost]
            public ActionResult EnvioCliente()
            {
                string nome = Request["Apelido"];
                // sua logica

                //depois ele vai apos fazer sua logica ele volta para view Index
                return View("Index");
            }

        }
    }

    minha VIEW

           

    <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>

    <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
    Index
    </asp:Content>

    <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
        <h2>Index</h2>

    apesar de ter o befinform endereçado ao controller ele não vai lá para passar o apelido

       <% using (Html.BeginForm("EnvioCliente", "Cliente"))
           { %>

            <input type="submit" name="btn" value="gravar " />
            <input type="text" name="Apelido" value=" " />


        <%}%>

    </asp:Content>

    Fico no aguardo e obrigado


    sexta-feira, 8 de junho de 2012 14:06

Respostas

  • Pessoal

    Eu mesmo consegui resolver o problema assim. Como fiz ?

    Dentro do Controller ao inves de colocar EnvioCliente tive que mudar o nome para index e colocar (FormCollection form) dentro do paranteses, dentro do método tive que colocar form["Apelido"] ao inves de Request["Apelido"];

     

    CONTROLLER

      [HttpPost]
        public ActionResult Index(FormCollection form))
            {
      string apelido= form["Apelido"];
                // sua logica

                //depois ele vai apos fazer sua logica ele volta para view Index
                return View("Index");
            }

    VIEW

           

      <% using (Html.BeginForm()) 
           { %>

            <input type="submit" name="btn" value="gravar " />
            <input type="text" name="Apelido" value=" " />

        <%}%>

    funcionou direito, parou no debug e passou o valor do textbox

    sexta-feira, 8 de junho de 2012 15:02