加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 在同一页面显示搜索表单及其结果的最佳方法?

发布时间:2020-12-16 06:29:18 所属栏目:asp.Net 来源:网络整理
导读:假设我有一个带文本框的简单搜索表单.在提交表单后,我将文本框的内容发送到存储过程,然后返回给我结果.我希望结果显示在表单的同一页面上,除了它下面. 现在我正在做以下事情,但它并没有按照我想要的方式运作: 我的SearchController的“索引”视图 @using (H
假设我有一个带文本框的简单搜索表单.在提交表单后,我将文本框的内容发送到存储过程,然后返回给我结果.我希望结果显示在表单的同一页面上,除了它下面.

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

我的SearchController的“索引”视图

@using (Html.BeginForm("SearchResults","Search",FormMethod.Post,new { @class = "searchform" }))`{
<fieldset>
    <legend>Name</legend>
    <div class="editor-label">
        @Html.Label("Search")
    </div>
    <div class="editor-field">
        @Html.TextBox("Name")
    </div>
    <input type="submit" value="Search" class="formbutton" />
</fieldset>
@{ Html.RenderPartial("SearchResults",null);

这是我的“SearchResults”视图:

@model IEnumerable<MyProject.Models.spSearchName_Result>

<table>
@foreach (var item in Model)
{
<tr>        
    <td>
        @item.Name
    </td>
</tr>
}
</table>

这是我的控制器:

// GET: /Search/SearchResult
    [HttpPost]
    public ActionResult SearchResult(FormCollection collection)
    {
        var result = myentity.spSearchName(collection["Name"]);            
        return PartialView("SearchResults",result);
    }

我似乎只能将结果显示在一个全新的页面上(不是作为局部视图嵌入),或者我在加载搜索页面时收到错误,因为没有结果(因为我还没有搜索过) .

有没有更好的方法来实现我想要做的事情?我觉得我反对MVC中的一些最佳实践.

解决方法

您可以在ViewData对象中返回结果,然后仅在视图上显示它是否为null.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读