0

我是 MVC 的新手,并且有一个包含搜索文本框 + 按钮、导航选项卡和表格的视图。

我希望仅在输入搜索条件并单击按钮时才填充表格。

我现在遇到的问题是视图的表格部分被渲染并在页面加载时返回空对象引用错误。

除了使用 jquery/java 函数之外,我如何才能让表格仅在输入搜索条件并单击按钮时才填充?

我是否需要创建 2 个单独的视图(一个有表格,一个没有)?

以下是我的部分观点:

        <div class="searchBox">

              <label>Please search here
                        <input type="text" name="searchTerm" id="searchTerm" value="<%= !string.IsNullOrEmpty((string) ViewData["SearchTerm"]) ? Html.Encode(ViewData["SearchTerm"]) : "" %>" />
                        <input type="button" value="Add" />
                </label>
        </div>

        <ul class="navigation">
    <li><a class="selected" href="#name" >Person1</a></li>
    <li><a href="#dob">Person2</a></li>
    <li><a href="#address">Person3</a></li>
    <li><a href="#status">Person4</a></li>
    </ul>

    <div class="tabSection">
    <div class="basic">


        <table id="person" class="gridview">
            <thead>
                <tr>
                    <th>name</th>
                    <th>dob</th>
                    <th>address</th>
                    <th></th>
                </tr>
                <tr>
                    <td><%= Model.name %></td>
                    <td><%= Model.dob%></td>
                    <td><%= Model.address%></td>
                    <td></td>
                </tr>
            </thead>
        </table>

</div>
</div>
4

1 回答 1

2

你应该把你的桌子包起来:

@if (Model != null)
{
    // table code
}

此外,您可能需要考虑将表逻辑放入局部视图,并将 if 语句放在局部视图中。这样,在您的主视图中,您可以只使用Html.RenderPartial("PARTAILVIEWNAME");这种方式将允许您在任意数量的视图中拥有同一个表,而不必记住每次都将表包装在 if 语句中。

于 2012-07-07T21:17:29.917 回答