@Html.BeginForm()是如何工作的?Microsoft ASP.Net MVC 5教程中的搜索结果?

@Html.BeginForm()是如何工作的?Microsoft ASP.Net MVC 5教程中的搜索结果?,asp.net,asp.net-mvc,asp.net-mvc-5,Asp.net,Asp.net Mvc,Asp.net Mvc 5,我正在学习MVC5ASP.Net和下面的教程。我想知道,当我点击过滤器按钮时,它是如何获取结果的 这段代码添加到了Movie/view/Index.cshtml中 @using (Html.BeginForm()) { <p> Title: @Html.TextBox("SearchString") <br /> <input type="submit" value="Filter" /></p> } @使用

我正在学习MVC5ASP.Net和下面的教程。我想知道,当我点击过滤器按钮时,它是如何获取结果的

这段代码添加到了Movie/view/Index.cshtml中

@using (Html.BeginForm())
{    
     <p> Title: @Html.TextBox("SearchString") <br />   
     <input type="submit" value="Filter" /></p> 
} 
@使用(Html.BeginForm())
{    
标题:@Html.TextBox(“搜索字符串”)

}

现在据我所知,它在屏幕上创建了一个文本框和一个按钮。但是这个按钮是如何调用搜索(索引)函数并在函数中传递文本框的值的,我无法得到它。

这不是一个愚蠢的问题
@html.BeginForm()
的工作原理如下。它有一些您可以添加到其中的参数,如
Action
Controller
FormType
htmlAttributes
。其工作方式是,如果您将其留空,它将查找与您现在所在页面同名的post操作,例如,如果您位于登录页面,它将查找登录post操作。我总是写我想让它访问的
action
controller

@Html.BeginForm("AddUser", "Admin", FormMethod.Post, new { @class = "my_form"}) {

}
因此,您的
后期操作
应该接受表单包含的参数,这些参数可以是
模型
产品
视图模型
或单字符串参数。在您的搜索案例中,您的操作应该如下所示

[HttpPost]
public ActionResult Search(string SearchString) 
{
   //do something here
}
请注意此处,以便将搜索字符串传递到方法中。
的名称必须与操作所采用的参数相同。所以我们的表格应该是这样的

@using (Html.BeginForm("Search", "YOUR CONTROLLER", FormMethod.Post)){    
     <p> Title: @Html.TextBox("SearchString") <br />   
     <input type="submit" value="Filter" /></p> 
} 
@使用(Html.BeginForm(“搜索”,“您的控制器”,FormMethod.Post)){
标题:@Html.TextBox(“搜索字符串”)

}

希望这能带来清晰。

我的表格与问题中所述的相同。另外,我的操作(索引)函数中的参数是“searchString”,而不是“searchString”(这里S是大写)。如果大写字母和小写字母“S”没有任何区别,那么我接受你的答案。好吧,我通过改变表单代码中不同字母的大小写来确定答案。它仍然有效。感谢并接受:)有没有一种方法可以简单地使用模型参数?例如,我有一个用户名为UserName、UserEmail的模型,想要一个只有一个参数-model的函数?