将文本框中的值传递给控制器​​方法并获取新页面

时间:2018-02-25 03:57:07

标签: c# asp.net-mvc razor

在我的索引视图中,我有一个搜索栏和一个按钮。我想从搜索栏中获取值并从Home Controller调用一个名为SearchResults的新方法,并从搜索栏传入值。 SearchResults woudl然后返回一个带有模型的新视图,我可以显示查询检索到的数据。

我到处寻找,找不到满意的答案。我已经尝试过使用jquery但它似乎不起作用,因为它只能让我在同一页面上,我需要返回一个新的视图。我在索引中没有模型,因为我只需要搜索栏中的信息就可以了。

2 个答案:

答案 0 :(得分:1)

您可以使用以下代码。因为,您没有提供任何示例代码,我假设您有一个搜索文本框的文本类型的输入元素和搜索按钮的类型按钮的输入元素。

在下面的代码示例中,

  1. txtSearch是用于输入搜索字符串
  2. 的文本框的ID
  3. btnSearch是用于调用特定控制器/操作的按钮的ID
  4. 在C#代码中,您获得searchText作为搜索文本框的值(请注意,查询字符串参数searchText应与您正在调用的Action中的参数名称相同),然后返回您想要的任何合适的视图只需在View方法中指定其路径。
  5. <强>标记

    <input type="text" id="txtSearch" name="txtSearch" />
    
    <input type="button" value="Search" id="btnSearch"
    onclick="location.href='@Url.Action("ActionName", "ControllerName")?searchText=' + document.getElementById('txtSearch').value; return false;" />
    

    行动C#代码

    public ActionResult Search(string searchText = "")
    {
      //TO DO???? do your search processing
    
       return View("~/Views/Folder1/Folder2/SomeView.cshtml")
    }
    

答案 1 :(得分:0)

您需要POST到控制器上的操作,您可以通过设置表单操作和方法来执行此操作。

composer install

确保表单字段的名称与方法中的参数相同。