@{
var db = Database.Open("DataExample");
var sql = "Select * from FenixProducts";
if(IsPost){
if(Request["button"].Equals("Filter1")){
sql = "Select * from FenixProducts where TorchLumens > 1200";
}
if(Request["button"].Equals("Filter2")){
sql = "Select * from FenixProducts where TorchLumens < 200";
}
}
var productResult = db.Query(sql);
}
@foreach(var x in productResult){
@ProductHelpers.fenixTorchGenerateProcuct(x.TorchName, x.TorchLumens, x.TorchRange, x.TorchPrice)
}
<form action="" method="post" style=" clear: left;">
<button type="submit" name="button" value="Filter1">Filter1</button>
<button type="submit" name="button" value="Filter2">Filter2</button>
</form>
这是一个好习惯吗?我计划在同一表格中使用多个按钮,并根据点击的按钮过滤产品。
答案 0 :(得分:0)
使用多个按钮并不是一个坏习惯。没有必要限制,但是,您应该将后端代码与视图分开,并确保您的页面易于使用。
在您的情况下,两个按钮可以解决您的问题,但如果您需要启用许多可能的自定义方案,那么也可以通过select
和input
标记自定义搜索。
答案 1 :(得分:0)
它可以用于演示页面,或者你可以轻松实现它。
但在实际项目中做这件事并不是一个好主意。这将成为你维持这个项目的噩梦。
您可以使用单选按钮或下拉列表作为该表单的输入,并将该输入发送回处理程序,根据输入值处理逻辑。 然后将您的处理程序移动到另一个文件中,将表单发布到该文件,以分离责任。
如果您正在处理webform项目,请在.cs文件中编写逻辑,如果您正在处理mvc项目,请在控制器中编写逻辑