gpt4 book ai didi

c# - 根据文本框值向页面添加过滤器

转载 作者:太空宇宙 更新时间:2023-11-03 12:59:07 24 4
gpt4 key购买 nike

我有以下两个表:

Table1
___________
ID
Name
Company
Industry
Rank
Key - guid

Table2
_____________
Key - guid
FieldValue
StartDate
EndDate

我使用的是 MVC 模式,而不是常规的 Web 表单。我为每个模型类和单独的 DBContext 类创建了 2 个单独的模型类。

最初当页面加载时,我在页面上显示 Table1 中的所有数据。我想在页面顶部添加一个文本框,当用户输入一个值并按回车键时,我想根据用户输入的值过滤页面上表格中的数据:

SELECT ID, Name, Company,Industry, Rank
FROM Table1 INNER JOIN Table2 ON Table1.Key=Table2.Key
WHERE FieldValue=TextBox1.Text

我已经有了在页面上正常显示 Table1 数据的代码,但我需要帮助添加基于文本框值的过滤器。谁能指出我正确的方向?

这是我在 View 中的代码:

<input type="text" id="TextBox1" />

<h2>Records</h2>
<table style="border: 1px solid black;">
<tr>
<th>ID</th>
<th>Name</th>
<th>Company</th>
<th>Industry</th>
<th>Rank</th>
</tr>
@foreach (ProjectName.Models.Records item in Model)
{
<tr style="border: 1px solid black;">
<td>@item.ID</td>
<td>@item.Name</td>
<td>@item.Company</td>
<td>@item.Industry</td>
<td>@item.Rank</td>

</tr>
}
</table>

这是更新的 View 代码:

 <div>       
@using (Html.BeginForm())
{
<input type="text" id="TextBox1" />
<input type="submit" name="submit" />
}

<h2>Records</h2>
<table style="border: 1px solid black;">
<tr>
<th>ID</th>
<th>Name</th>
<th>Company</th>
<th>Industry</th>
<th>Rank</th>
</tr>
@foreach (ProjectName.Models.Records item in Model)
{
<tr style="border: 1px solid black;">
<td>@item.ID</td>
<td>@item.Name</td>
<td>@item.Company</td>
<td>@item.Industry</td>
<td>@item.Rank</td>

</tr>
}
</table>
</div>

附言亲爱的编辑们,拜托拜托拜托了,停止从标题中编辑单词 MVC——否则人们会认为它是 Web Forms 模式而不是 MVC。所以请漂亮请停止编辑它,你没有帮助,只会让事情变得困难。提前非常感谢您,我的感激之情溢于言表

最佳答案

即使您使用的是 MVC,您仍然需要 <form>将过滤器值提交给 Controller 方法。

这是 MVC 表单中的文本框:

@using (Html.BeginForm())
{
<input type="text" name="TextBox1" />
<input type="submit" name="submit" />
}

这是呈现为 HTML <form>标签。你的 Controller 看起来像这样:

public ActionResult Index(string TextBox1)
{
// You don't say how you're interacting with the database,
// but you need to check the `TextBox1` parameter for null,
// and use it in your query if it's not - simplified:
if(TextBox1 != null)
{
// do qry with parameter
}
else
{
// do qry without parameter
}
...

有几种方法可以完成我上面写的事情,但这是一个简单的版本,不需要修改您的 ViewModel (主要是不知道长啥样!)

关于c# - 根据文本框值向页面添加过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32950868/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com