Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在ASP.NET Web应用程序中筛选日期_C#_Asp.net_Asp.net Mvc_Search - Fatal编程技术网

C# 如何在ASP.NET Web应用程序中筛选日期

C# 如何在ASP.NET Web应用程序中筛选日期,c#,asp.net,asp.net-mvc,search,C#,Asp.net,Asp.net Mvc,Search,我对MVC和软件开发非常陌生,我想在我的应用程序中实现按日期搜索的功能。在索引视图中,我希望用户能够通过网页上可用的两个日期字段“日期”和“订单日期”进行搜索。目前这是我在视图中的代码,它基本上指定了页面的布局 using (Html.BeginForm("Index","PurchaseOrder",FormMethod.Get)) { <p> Search by Date: &nbsp;&nbsp;&nbsp;&nbsp;&

我对MVC和软件开发非常陌生,我想在我的应用程序中实现按日期搜索的功能。在索引视图中,我希望用户能够通过网页上可用的两个日期字段“日期”和“订单日期”进行搜索。目前这是我在视图中的代码,它基本上指定了页面的布局

using (Html.BeginForm("Index","PurchaseOrder",FormMethod.Get))
{
    <p>
        Search by Date: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@Html.TextBox("searchBy","dateSearchBegin") to: @Html.TextBox("searchBy","dateSearchEnd")
        <input type="submit" value="Search" /> <br /><br />
        Search by Order Date: &nbsp;@Html.TextBox("searchBy","dateOrderedBegin") to: @Html.TextBox("searchBy","dateOrderedEnd")
        <input type="submit"  value="Search" />
        <br /> <br />
        Search by: @Html.RadioButton("searchBy","Requestor", true) Requestor
        @Html.RadioButton("searchBy","Vendor") Vendor
        @Html.RadioButton("searchBy","workOrder") Work Order # <br />
        @Html.TextBox("search","", new { style = "width:10000px" })
        <input type="submit" value="Search"  />
    </p>

}
使用(Html.BeginForm(“Index”、“PurchaseOrder”、FormMethod.Get))
{

按日期搜索:@Html.TextBox(“searchBy”、“dateSearchBegin”)至:@Html.TextBox(“searchBy”、“dateSearchEnd”)


按订单日期搜索:@Html.TextBox(“searchBy”、“dateOrderedBegin”)至:@Html.TextBox(“searchBy”、“dateOrderedEnd”)

搜索者:@Html.RadioButton(“搜索者”,“请求者”,true)请求者 @RadioButton(“搜索者”、“供应商”)供应商 @Html.RadioButton(“searchBy”、“workOrder”)工单 @TextBox(“搜索”,new{style=“width:10000px”})

}
在控制器中,我有这个代码。这就是我试图提供逻辑的地方,以便能够通过不同的字段进行过滤

// GET: PurchaseOrder
public ActionResult Index(string searchBy, string search,  int? page)
{

    if (searchBy == "Requestor")
    {
        return View(db.PurchaseOrders.Where(x => x.Requestor.ToUpper().Contains(search)).OrderBy(i => i.DateOrdered).ToPagedList(page ?? 1, 15));
    }
    else if (searchBy == "Vendor")
    {
        return View(db.PurchaseOrders.Where(x => x.Vendor.ToUpper().Contains(search)).OrderBy(i=>i.DateOrdered).ToPagedList(page??1,15));
    }
    else if (searchBy == "workOrder")
    {
        return View(db.PurchaseOrders.Where(x => x.PurchaseRequest_.ToUpper().Contains(search)).OrderBy(i => i.DateOrdered).ToPagedList(page ?? 1, 15));
    }
    else if (searchBy == "dateSearchBegin")
    {
        return View(db.PurchaseOrders.Where(x => x.Date > "dateSearchBegin" && x.Date < "dateSearchEnd").OrderBy(i => i.Date).ToPagedList(page ?? 1,15));
    }
    else if (searchBy == "dateSearchEnd")
    {
        return View(db.PurchaseOrders.Where(x => x.Date > "dateOrderedBegin" && x.Date < "dateOrderedEnd").OrderBy(i => i.Date).ToPagedList(page ?? 1,15));
    }
    int pageSize = 15;
    int pageNumber = (page ?? 1);
    pageNumber = page == null ? (ViewBag.pageData == null ? 1 : (int)ViewBag.pageData) : page.Value;
    ViewBag.pageData = page;
    return View(db.PurchaseOrders.OrderBy(i => i.DateOrdered).ToPagedList(pageNumber, pageSize));
}
//获取:PurchaseOrder
公共操作结果索引(字符串搜索依据、字符串搜索、整数页)
{
if(searchBy==“请求者”)
{
返回视图(db.PurchaseOrders.Where(x=>x.Requestor.ToUpper().Contains(search)).OrderBy(i=>i.DateOrdered).ToPagedList(第1、15页));
}
else if(searchBy==“供应商”)
{
返回视图(db.PurchaseOrders.Where(x=>x.Vendor.ToUpper().Contains(search)).OrderBy(i=>i.DateOrdered).ToPagedList(第1,15页));
}
else if(searchBy==“工作顺序”)
{
返回视图(db.PurchaseOrders.Where(x=>x.PurchaseRequest_uz.ToUpper().Contains(search)).OrderBy(i=>i.DateOrdered).ToPagedList(第1页,第15页));
}
else if(searchBy==“dateSearchBegin”)
{
返回视图(db.PurchaseOrders.Where(x=>x.Date>“dateSearchBegin”和&x.Date<“dateSearchEnd”).OrderBy(i=>i.Date.ToPagedList(第1,15页));
}
else if(searchBy==“dateSearchEnd”)
{
返回视图(db.PurchaseOrders.Where(x=>x.Date>“dateOrderedBegin”和&x.Date<“dateOrderedEnd”).OrderBy(i=>i.Date.ToPagedList(第1,15页));
}
int pageSize=15;
整数页码=(第1页);
pageNumber=page==null?(ViewBag.pageData==null?1:(int)ViewBag.pageData):page.Value;
ViewBag.pageData=页面;
返回视图(db.PurchaseOrders.OrderBy(i=>i.DateOrdered).ToPagedList(pageNumber,pageSize));
}

我收到一条错误消息,其中指出“operator”您需要从查询(
字符串搜索
)构造
日期时间
对象,然后在linq查询中使用它

var dtFrom = DateTime.Parse(search)
var dtTo ...

return View(db.PurchaseOrders.Where(x => x.Date > dtFrom && x.Date < dtTo).OrderBy(i => i.Date).ToPagedList(page ?? 1,15));

然后再回来

filtered.ToPagedList()

您正在将
DateTime
对象与
string
x.Date>“dateSearchBegin”进行比较“
您正在比较类型
DateTime
string
,这两种类型无效或不符合逻辑。如何将视图中的文本框设置为等于dtFrom变量?search是一个空字符串值您可以将模型与数据一起发送到视图,模型将包含所有用于搜索的字段。”
filtered.ToPagedList()