AlexGH
AlexGH

Reputation: 2805

Passing parameter in TextBox using Ajax and MVC

I want in the UI that the user enter a number inside a textbox and then show him in the same page using AJAX a record of all the artists with age less than the number the user entered. My doubt is that I don't know how to pass the number entered into the textbox using Ajax to the PartialViewResult method inside my Controller Class

Controller class:

 public PartialViewResult GetByAgeLessThan(int age)
        {
            List<Artist> list = ope.ArtistLessThanAge(age);
            return PartialView("GetByAgeLessThan", list);
        }

This is my Artists index view(I want to show the results in it using Ajax). My big doubt is in here.. what should I do to pass the number entered inside the textbox to my PartialViewResult inside my controller??? There should be something wrong in this code... when I press the submit button nothing happens:

@using (Ajax.BeginForm("GetByAgeLessThan", "Artists", new AjaxOptions()
{
    HttpMethod = "GET",
    UpdateTargetId = "divajax",
    InsertionMode = InsertionMode.Replace
})){
    <h4>Search</h4>
    @Html.TextBox("txtAge")        
    <input type="submit" name="Command" value="Search"/>
    }

Upvotes: 0

Views: 584

Answers (1)

Shyju
Shyju

Reputation: 218732

When razor executes the line @Html.TextBox("txtAge"), It is going to render the below output

<input id="txtAge" name="txtAge" type="text" value="">

For model binding to work, you need to have your form field names same as your action method parameter name(s).

So change

@Html.TextBox("txtAge") 

to

@Html.TextBox("age")

and it should work fine.

Or you can update your action method parameter name to txtAge ( I don't like that parameter name :) )

Upvotes: 1

Related Questions