Wednesday 6 November 2013

Fetch values from View in Controller using Form Collection


Fetch values from View in Controller using Form Collection

In this article I will explain how to fetch data from controls which are on View to Controller. There are many ways to fetch these values and Form Collection is the one of them.

In my one of last article I explained the GET and POST method. And in POST method I showed that data stored in FORM if Method set as POST. I also explained that data stored using the controls property Name.

Note: - if you are not aware the concept of GET and POST in MVC then kindly Click Here.

As we know that if our method set as POST then all data stored in Form so we can access this data on our controller using FormCollection.



For Example:-

In this example I have created the Home Controller and in this I have created index view.

In this view I have created the following form in which I am taking first name and last name from the user.  For each control I have set the property name. This property I will use in form collection to fetch the data.

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <form method="post" action="Welcome\Index">
        <table>
            <tr>
                <td>Enter First Name</td>
                <td><input type="text" id="fname_id" name="fname_name" /></td>
            </tr>
             <tr>
                <td>Enter Last Name</td>
                <td><input type="text" id="lname_id" name="lname_name" /></td>
            </tr>
             <tr>
                <td></td>
                <td><input type="submit"  /></td>
            </tr>
        </table>
    </form>
</body>
</html>

In action I have set the welcome controller and index view. So I have created welcome controller and create index view.

In index view method I have passed FormCollection object as parameter.  And using this we can fetch the data.

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

namespace MvcApplication1.Controllers
{
    public class WelcomeController : Controller
    {
       

        public ActionResult Index(FormCollection data)
        {
            string fname = data["fname_name"];
            string lname = data["lname_name"];
            Response.Write("Your Full name is= " + fname + " " + lname);


            return View();
        }

    }
}

Now execute this code



Figure 1



Figure 2

As you can see that we can fetch data in controller. So after fetching data we can also store in the database.


For any query you can send me mail at info@techaltum.com

No comments:

Post a Comment