Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to pass Formcollection and Model value at the same time from view to controller?

I have cshtml page having code like this

model Kouponer.Models.person_T  
@using (Html.BeginForm("BuynowForm", "Home"))
{    
    <label>@Model.name</label>
    <label>address</label>
    @Html.TextBox("address")<div>
    <input type="submit" value="Submit" class="btn btn-primary" />
}

And my current actionresult method is

[HttpPost]
public ActionResult BuynowForm(FormCollection col)
{  string address = col["address"];
        return View();
}

Here I will get only the formcollection values. How to pass the model along with the formcollection?

like image 887
Bhavin Bhaskaran Avatar asked Jun 09 '15 19:06

Bhavin Bhaskaran


1 Answers

In the Controller class of System.Web.Mvc namespace there is an HttpRequestBase property called Request with all the data of the current http request. Among its properties, there is the NameValueCollection property called Form you are looking for.

The usage would be something like this:

[HttpPost]
public ActionResult BuynowForm(person_T model)
{
    string addressFromModel = model.Address;
    string addressFromRequest = Request.Form["address"];
    return View();
}
like image 90
Maximo Dominguez Avatar answered Oct 19 '22 03:10

Maximo Dominguez