C# ASP.NET包含带有操作的字符串
在@OBJECT上,我试图以字符串形式将搜索内容传递给搜索控制器。我的问题是如何从家长那里获取文本框的内容,或者是否有更好的方法来解决这个问题,而无需使用按钮或外部链接,提前谢谢C# ASP.NET包含带有操作的字符串,c#,html,asp.net,asp.net-mvc,C#,Html,Asp.net,Asp.net Mvc,在@OBJECT上,我试图以字符串形式将搜索内容传递给搜索控制器。我的问题是如何从家长那里获取文本框的内容,或者是否有更好的方法来解决这个问题,而无需使用按钮或外部链接,提前谢谢 <form class="searchBarForm" method="post" action="@Url.Action("Search", "Search", @OBJECT)> @Html.TextBox("value", null, new { @id = 's
<form class="searchBarForm" method="post"
action="@Url.Action("Search", "Search", @OBJECT)>
@Html.TextBox("value", null,
new { @id = 'search_content'});
</form>
你做错了。在MVC中,您不需要手动执行这些操作。表单值(在本例中为文本框的内容)将自动发布,如果正确绑定到模型,控制器操作将接收它们
例如:
你需要这样做
@Url.Action("Search", "Search", new {routeParameter = routeValue})
上面的答案是有效的,但我最终得到了一个不同的解决方案。
最初不知道FormCollection对象以及如何基于名称访问变量
// The controller
[HttpPost]
public ActionResult Search(FormCollection collection)
{
string searchQuery = collection["searchQuery"];
... do those swweet sweet calcs ...
}
// The view
<form class="searchBarForm" method="post" action=@Url.Action("Search", "Search")>
@Html.TextBox("searchQuery", null, new { @placeholder = "Search . . .", @class = "form-control searchBar", @id = "search_contents"})
</form>
//控制器
[HttpPost]
公共操作结果搜索(FormCollection集合)
{
字符串searchQuery=集合[“searchQuery”];
…做那些甜蜜的计算。。。
}
//景色
@TextBox(“searchQuery”,null,新{@placeholder=“Search…”,@class=“form control searchBar”,@id=“Search\u contents”})
我不明白你在问什么。@Url.Action(视图,控制器,@OBJECT),@OBJECT是控制器的路由值,对于我的应用程序,我只需要它是一个字符串,从文本框的内容中获取其值。@Url.Action在服务器上运行时计算,您无法获取文本框的内容值并使用razor更新url。您必须使用Javascript,您必须已经知道要传递的值是什么。
// The controller
[HttpPost]
public ActionResult Search(FormCollection collection)
{
string searchQuery = collection["searchQuery"];
... do those swweet sweet calcs ...
}
// The view
<form class="searchBarForm" method="post" action=@Url.Action("Search", "Search")>
@Html.TextBox("searchQuery", null, new { @placeholder = "Search . . .", @class = "form-control searchBar", @id = "search_contents"})
</form>