2013-03-14 4 views
3

Я пытаюсь создать simnple-утилиту поиска, ищущую моих сотрудников по фамилии.ASP.NET MVC 4: значение ввода формы всегда равно нулю. Отправить

Вот мой Razor Посмотреть

@using(Html.BeginForm("Index","Employee", FormMethod.Post)) 
{ 
    <p> 
     Search employees by Last Name : @Html.TextBox("SearchString") 
     <input type="submit" value="Submit" name="Search" />  
    </p> 
} 

Вот мой контроллер

 // GET: /Employee/ 
    public ActionResult Index(string lastName) 
    { 
     var employees = db.Employees; 
     if (!String.IsNullOrEmpty(lastName)) 
     { 
      employees = employees.Where(p => p.LastName.ToUpper().Contains(lastName.ToUpper())); 
     }    
     return View(employees.ToList()); 
    } 

Debugging показывает кнопку Submit проводки обратно индексного метода, но значение LastName возвращается в индексный метод всегда ноль. Как я могу передать lastName правильно?

+0

Спасибо, например, здесь: http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/sorting-filtering-and-paging-with -the-entity-framework-in-as-asp-net-mvc-приложение оказалось неверным. –

ответ

3

вашего @Html.TextBox("SearchString") имя и метод действия параметра имя должно совпадать. (SearchString)

[HttpPost] 
public ActionResult Index(string SearchString) 
{ 
    var employees = db.Employees; 
    if (!String.IsNullOrEmpty(SearchString)) 
    { 
     employees = employees.Where(p => p.LastName.ToUpper().Contains(SearchString.ToUpper())); 
    }    
    return View(employees.ToList()); 
} 
0

Вы должны назвать переменную в вашей ActionResult так же, как имя поля так что в вашем примере, либо установить значение TextBox для lastName или имя переменной в ActionResult Index к SearchString