[英]How do I correctly post form data to a controller action?
我無法將數據從表單發布到控制器操作。 我已經使用HTML.BeginForm()創建了表單,並且有一個控制器,當我手動創建查詢字符串時,該控制器可以正常工作,但是我不理解如何使表單與控制器動作一起工作。
<form class="navbar-form navbar-left">
<div class="form-group>
@using (Html.BeginForm("GeneralSearch", "Search", FormMethod.Post))
{
@Html.TextBox("searchString")
<button type="submit" class="default">Submit</button>
}
</div>
</form>
然后,在我的控制器中,我目前擁有HttpGet
屬性,ASP.NET自動將其放置在該屬性中。 但是,如果我將其更改為HttpPost
,仍然會出現問題。
[HttpGet]
public ActionResult GeneralSearch(string searchString)
{
return View("SearchResult", viewModel);
}
輸入文本並提交表單后,網絡請求將發送到:
http://localhost:64562/?searchString=test
它只是加載默認的控制器和操作,而不是我在using
語句中指定的“搜索”控制器。 如何正確發布特定動作?
Html.BeginForm(
添加了<Form>
標記,但是我看到您正在嘗試將表單標記添加到另一個表單標記中,如下所示;這是錯誤的。
<form class="navbar-form navbar-left">
<div class="form-group>
@using (Html.BeginForm("GeneralSearch", "Search",
同樣,您的控制器必須公開不同的操作方法來滿足GET
和POST
請求,您應該擁有
public ActionResult GeneralSearch()
{
return View();
}
[HttpPost]
public ActionResult GeneralSearch(string searchString)
{
return View("SearchResult", viewModel);
}
您正在發布到正在偵聽GET的方法。
切換FormMethod
@using (Html.BeginForm("GeneralSearch", "Search", FormMethod.Get))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.