所以我得到了一个包含搜索表单的页面,当用户搜索某个值时,如果数据库中没有记录,则表单返回为空,但如果有记录,表单将填充数据。
我在想的是这个
var db = Database.Open("myDataBase");
var selectCommand = "SELECT * FROM exportClient";
var searchTerm = "";
if(!Request.QueryString["searchField"].IsEmpty() ) {
selectCommand = "SELECT * FROM exportClient WHERE clientAccount = @0";
searchTerm = Request.QueryString["searchField"];
}
if(IsPost){
var selectedData = db.Query(selectCommand, searchTerm);
}
然后:
<body>
<div class="col_12">
<form method="get">
<label>search</label><input type="text" class="col_3" name="searchField" />
<button type="submit" class="button red" value="search">search</button>
</form>
</div>
@if(!Request.QueryString["searchField"].IsEmpty() ){
foreach(var row in db.Query(selectCommand, searchTerm)) {
<div class="col_12 box">
<form method="post">
// HERE IS THE FORM POPULATED
</form>
</div>
}
} else {
<div class="col_12 box">
<form method="post">
// HERE IS THE FORM NOT POPULATED
</form>
</div>
}
</body>
但是发生的事情是,当我进入页面时,未填充的表单总是出现,我需要用户在进入页面时看到的唯一内容是进行搜索的输入字段。
我做错了什么?
答案 0 :(得分:1)
我可以在您的代码中看到许多潜在问题,希望您可以将这些问题放在一起以实现您想要的目标:
action
属性。selectedData
块中创建的IsPost()
变量超出范围之后再对其执行任何操作。也许您没有包含所有代码,因此如果它与问题无关,请忽略它。else
块 - 包括空表单 - 来自您的HTML?希望有所帮助。
答案 1 :(得分:1)
我不确定是否理解了你的目标,但在我看来,你的主要问题是检测是否存在查询字符串。
我认为你的代码应该是这样的
@if(Request.QueryString.HasKeys())
{
if(!Request.QueryString["searchField"].IsEmpty() ){
<p>searchField has value</p>
} else {
<p>searchField hasn't value</p>
}
}