Asp.net mvc 在mvc2 asp网络中搜索并显示在同一页面上

Asp.net mvc 在mvc2 asp网络中搜索并显示在同一页面上,asp.net-mvc,jquery,Asp.net Mvc,Jquery,有一个带有文本框的简单搜索表单。提交表单后,我将文本框的内容发送到一个存储过程,该存储过程将结果返回给我。我希望结果显示在表单的同一页上,只是在它的下方 现在我正在做以下工作,但并没有按照我想要的方式工作:萨提什库马尔 您不会将该问题标记为是否与ajax相关的解决方案。我将介绍一种简单的ajax方法,它可能适合也可能不适合 在控制器中: public ActionResult Search(string searchTerm) { // you don't add code re you

有一个带有文本框的简单搜索表单。提交表单后,我将文本框的内容发送到一个存储过程,该存储过程将结果返回给我。我希望结果显示在表单的同一页上,只是在它的下方

现在我正在做以下工作,但并没有按照我想要的方式工作:

萨提什库马尔

您不会将该问题标记为是否与ajax相关的解决方案。我将介绍一种简单的ajax方法,它可能适合也可能不适合

在控制器中:

public ActionResult Search(string searchTerm)
{
    // you don't add code re your stored proc, so here is a repo based approach
    var searchItems = _repository.Find(x => x.searchfield.Contains(searchTerm));
    return PartialView("SearchPartial", searchItems);
}
main view index.aspx或下面定义主要内容的任何内容,添加:

<div id="searchResults"></div>
在页面的另一部分中,半伪代码:

<script type="text/javascript">
     function getSearchResults() {
         // #yoursearchbox is a textbox on the index.aspx aview
         var tdata = { searchTerm: $('#yoursearchbox').val()}; 
         // or your data in the format that will be used ??
         $.ajax({
           type: "GET",
           data: tdata,
           url : '<%= Url.Action("Search", "Home") %>',
           success: function (result) { success(result); }  
        });
      }); 

    function success(result){
        $("#searchResults").html(result);
    }
</script>
然后添加一个包含搜索结果模型的局部视图SearchPartial.ascx

希望这有帮助。

您可以使用Ajax来解决这个问题

<div>
`@using (Ajax.BeginForm("action", "controller", new AjaxOptions
    {
        UpdateTargetId = "results",
        HttpMethod = "GET",
    }))
    {
        @Html.TextBox()
        <input type="submit" value="Search" />
    }`
<div id="results"></div>
</div>

您忘了包含代码。这是两个不同的操作,有两个不同的模型。为什么不将它们放在单独的页面上,或者通过AJAX调用加载。@Brandon看到这个了吗