C# Ajax查询刷新整个页面而不是部分页面

C# Ajax查询刷新整个页面而不是部分页面,c#,ajax,asp.net-mvc,C#,Ajax,Asp.net Mvc,我有一个简单的视图,其中有一个用于过滤记录的ajax表单: @using (Ajax.BeginForm("Index", new AjaxOptions() { InsertionMode=InsertionMode.Replace, UpdateTargetId="dane" })) { @Html.Partial("SearchTab") } @Html.Partial("ShowPartial") // <--- id="dane" 在输入字段中写入

我有一个简单的视图,其中有一个用于过滤记录的ajax表单:

@using (Ajax.BeginForm("Index", new AjaxOptions()
{

    InsertionMode=InsertionMode.Replace,
    UpdateTargetId="dane"
}))
{

   @Html.Partial("SearchTab") 
}

@Html.Partial("ShowPartial") // <--- id="dane"

在输入字段中写入内容并按下过滤器后。Ajax应该刷新ShowPartial并在SerchTab的输入字段中保留值,但是我得到的是经过过滤的记录,并且输入变为空。有人可以建议我编辑以更改此行为吗?我不知道这是否有帮助,因为它正在使用jquery,但它的工作方式与您想要的一样:
如果您打算

return View()
您还应该返回原始模型,以便可以使用捕获的值填充控件值

或者,如果您只需要返回列表:

deviceusages.ToList()
然后您可以返回一个PartialView,例如

return PartialView(deviceusages.ToList());

好的,我找到了问题的原因

我需要更改此代码

<div class="input-group">
    <div class="input-group-addon name">
        User name:
    </div>
    <input type="text" name="name" class="form-control" />
</div>

我知道我可以用Jquery来做,但现在我需要让这段代码正常工作。我使用了您的精确代码,但无法重新处理您的问题,我的意思是表单保持了它的值。我认为问题不在于表单元素,您需要检查代码的其他部分。我设法解决了我的问题。我需要更改代码以使用Html助手。不幸的是,我可以在两天内接受我自己的答案。我认为没有必要将您的代码更改为HtmlHelpers。我看不出有什么理由改变。但我想知道它是如何解决你的问题的。不管怎样,我很高兴你解决了你的问题。
return PartialView(deviceusages.ToList());
<div class="input-group">
    <div class="input-group-addon name">
        User name:
    </div>
    <input type="text" name="name" class="form-control" />
</div>
@Html.Label("User name: ", new { @class = "input-group-addon" })
@Html.TextBox("name", null, new { @type = "text", @class = "form-control" })