Ответ 1
Это не тупой вопрос. @html.BeginForm()
работает следующим образом. У него есть некоторые параметры, которые вы можете добавить к нему, например Action
Controller
FormType
htmlAttributes
. Это работает так, что если вы оставите его пустым, он будет искать действие публикации с тем же именем, что и на странице, на которой вы сейчас находитесь, например, если вы находитесь на странице входа в систему, он будет искать действие публикации сообщения. Я всегда пишу, к какому action
и controller
я хочу получить доступ.
@Html.BeginForm("AddUser", "Admin", FormMethod.Post, new { @class = "my_form"}) {
}
Таким образом, ваше post action
должно принимать параметры, которые содержит ваша форма, и это может быть Model
то есть параметры Product
, ViewModel
или однострочные. В вашем случае с поиском ваше действие должно выглядеть так
[HttpPost]
public ActionResult Search(string SearchString)
{
//do something here
}
Обратите внимание, здесь строка поиска будет передана в метод. Имя <input>
должно совпадать с параметром, который принимает ваше действие. Таким образом, наша форма должна быть такой
@using (Html.BeginForm("Search", "YOUR CONTROLLER", FormMethod.Post)){
<p> Title: @Html.TextBox("SearchString") <br />
<input type="submit" value="Filter" /></p>
}
Надеюсь, что это приносит ясность.