Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET包含带有操作的字符串_C#_Html_Asp.net_Asp.net Mvc - Fatal编程技术网

C# ASP.NET包含带有操作的字符串

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

在@OBJECT上,我试图以字符串形式将搜索内容传递给搜索控制器。我的问题是如何从家长那里获取文本框的内容,或者是否有更好的方法来解决这个问题,而无需使用按钮或外部链接,提前谢谢

<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>