Asp.net mvc 5 如何在搜索字符串CustomerName时使用MVC5SearchBox获取int ID

Asp.net mvc 5 如何在搜索字符串CustomerName时使用MVC5SearchBox获取int ID,asp.net-mvc-5,search-box,Asp.net Mvc 5,Search Box,我的SQL表: [PAYID] [int] IDENTITY(1,1) NOT NULL, [PaymentCustomer] [int] NOT NULL, [PaymentAmount] [int] NOT NULL, [PaymentLocation] [int] NOT NULL, [PaymentActive] [bit] NOT NULL PAYID PaymentCustomer PaymentAmount PaymentLocation PaymentActive 2

我的SQL表:

[PAYID] [int] IDENTITY(1,1) NOT NULL,
[PaymentCustomer] [int] NOT NULL,
[PaymentAmount] [int] NOT NULL,
[PaymentLocation] [int] NOT NULL,
[PaymentActive] [bit] NOT NULL
PAYID   PaymentCustomer PaymentAmount   PaymentLocation PaymentActive
2   1   5   1   1
3   2   5   2   1
4   3   10  2   1
AAAA    5   Location 1  True
BBBB    5   Location 2  True
CCCC    0   Location 2  True
// GET: CUSTOMERS
public ActionResult Index(string sortOrder, string currentFilter, string searchString, int? page)
{
    //var cUSTOMERS = db.CUSTOMERS.Include(c => c.APPROVALAUTHORITY).Include(c => c.CRITERIA).Include(c => c.REQUESTFROM);
    //return View(cUSTOMERS.ToList());


    ViewBag.CurrentSort = sortOrder;
    ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
    ViewBag.DateSortParm = sortOrder == "Date" ? "date_desc" : "Date";

    if (searchString != null)
    {
        page = 1;
    }
    else
    {
        searchString = currentFilter;
    }

    ViewBag.CurrentFilter = searchString;

    var customers = from s in db.CUSTOMERS
                   select s;
    if (!String.IsNullOrEmpty(searchString))
    {
        customers = customers.Where(s => s.CustomerName.Contains(searchString)
                               || s.CustomerSurname.Contains(searchString));
    }
    switch (sortOrder)
    {
        case "name_desc":
            customers = customers.OrderByDescending(s => s.CustomerName);
            break;
        case "Date":
            customers = customers.OrderBy(s => s.CustomerRegistrationDate);
            break;
        case "date_desc":
            customers = customers.OrderByDescending(s => s.CustomerRegistrationDate);
            break;
        default:  // Name ascending 
            customers = customers.OrderBy(s => s.CustomerName);
            break;
    }

    int pageSize = 50;
    int pageNumber = (page ?? 1);
    return View(customers.ToPagedList(pageNumber, pageSize));
}
<p>
    @using (Html.BeginForm("Index", "CUSTOMERS", FormMethod.Get))
    {
        <div class="row">
            <div class="col-xs-6">
                <div class="input-group">
                    <span class="input-group-btn">
                        <button class="btn btn-default" type="submit">Müşteri Ara:</button>
                    </span>
                    @Html.TextBox("SearchString", ViewBag.CurrentFilter as string, new { @class = "form-control" })
                </div><!-- /input-group -->
            </div><!-- /.col-lg-6 -->
        </div><!-- /.row -->

    }
</p>
// GET: PAYMENT
public ActionResult Index(string sortOrder, string currentFilter, string searchString, int? page)
{
    ViewBag.CurrentSort = sortOrder;
    ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
    ViewBag.DateSortParm = sortOrder == "Date" ? "date_desc" : "Date";

    if (searchString != null)
    {
        page = 1;
    }
    else
    {
        searchString = currentFilter;
    }

    ViewBag.CurrentFilter = searchString;

    var customers = from s in db.CUSTOMERS
                    select s;
    if (!String.IsNullOrEmpty(searchString))
    {
        customers = customers.Where(s => s.CustomerName.Contains(searchString)
                               || s.CustomerSurname.Contains(searchString));

        if (customers.GetEnumerator().MoveNext() == true)
        {
            int customeId = customers.SingleOrDefault(p => p.CustomerName.Contains(searchString)).CUSTID;

            var pAYMENT = db.PAYMENT.Include(p => p.CUSTOMERS).Include(p => p.LOCATION);
            pAYMENT = db.PAYMENT.Where(p => p.PaymentCustomer == customeId);

            int fLen = pAYMENT.Count();
            ViewBag.TextMessage = "Total " + fLen + " records were found.";

            switch (sortOrder)
            {
                case "name_desc":
                    pAYMENT = pAYMENT.OrderByDescending(s => s.PaymentCustomer);
                    break;
                default:  // Name ascending 
                    pAYMENT = pAYMENT.OrderBy(s => s.PaymentCustomer);
                    break;
            }

            int pageSize = 50;
            int pageNumber = (page ?? 1);
            return View(pAYMENT.ToPagedList(pageNumber, pageSize));
        }
        else
        {
            //var pAYMENT = db.PAYMENT.Include(p => p.CUSTOMERS).Include(p => p.LOCATION);
            var pAYMENT = db.PAYMENT.Include(p => p.CUSTOMERS).Include(p => p.LOCATION);
            pAYMENT = db.PAYMENT.Where(p => p.PaymentCustomer == 0);

            pAYMENT.DefaultIfEmpty();
            ViewBag.TextMessage = "No Data found...";
            return View(pAYMENT.ToList());
        }
    }
    else
    {
        var pAYMENT = db.PAYMENT.Include(p => p.CUSTOMERS).Include(p => p.LOCATION);
        int fLen = pAYMENT.Count();
         ViewBag.TextMessage = "Total " + fLen + " records were found.";
        return View(pAYMENT.ToList());
    }
我的SQL表值:

[PAYID] [int] IDENTITY(1,1) NOT NULL,
[PaymentCustomer] [int] NOT NULL,
[PaymentAmount] [int] NOT NULL,
[PaymentLocation] [int] NOT NULL,
[PaymentActive] [bit] NOT NULL
PAYID   PaymentCustomer PaymentAmount   PaymentLocation PaymentActive
2   1   5   1   1
3   2   5   2   1
4   3   10  2   1
AAAA    5   Location 1  True
BBBB    5   Location 2  True
CCCC    0   Location 2  True
// GET: CUSTOMERS
public ActionResult Index(string sortOrder, string currentFilter, string searchString, int? page)
{
    //var cUSTOMERS = db.CUSTOMERS.Include(c => c.APPROVALAUTHORITY).Include(c => c.CRITERIA).Include(c => c.REQUESTFROM);
    //return View(cUSTOMERS.ToList());


    ViewBag.CurrentSort = sortOrder;
    ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
    ViewBag.DateSortParm = sortOrder == "Date" ? "date_desc" : "Date";

    if (searchString != null)
    {
        page = 1;
    }
    else
    {
        searchString = currentFilter;
    }

    ViewBag.CurrentFilter = searchString;

    var customers = from s in db.CUSTOMERS
                   select s;
    if (!String.IsNullOrEmpty(searchString))
    {
        customers = customers.Where(s => s.CustomerName.Contains(searchString)
                               || s.CustomerSurname.Contains(searchString));
    }
    switch (sortOrder)
    {
        case "name_desc":
            customers = customers.OrderByDescending(s => s.CustomerName);
            break;
        case "Date":
            customers = customers.OrderBy(s => s.CustomerRegistrationDate);
            break;
        case "date_desc":
            customers = customers.OrderByDescending(s => s.CustomerRegistrationDate);
            break;
        default:  // Name ascending 
            customers = customers.OrderBy(s => s.CustomerName);
            break;
    }

    int pageSize = 50;
    int pageNumber = (page ?? 1);
    return View(customers.ToPagedList(pageNumber, pageSize));
}
<p>
    @using (Html.BeginForm("Index", "CUSTOMERS", FormMethod.Get))
    {
        <div class="row">
            <div class="col-xs-6">
                <div class="input-group">
                    <span class="input-group-btn">
                        <button class="btn btn-default" type="submit">Müşteri Ara:</button>
                    </span>
                    @Html.TextBox("SearchString", ViewBag.CurrentFilter as string, new { @class = "form-control" })
                </div><!-- /input-group -->
            </div><!-- /.col-lg-6 -->
        </div><!-- /.row -->

    }
</p>
// GET: PAYMENT
public ActionResult Index(string sortOrder, string currentFilter, string searchString, int? page)
{
    ViewBag.CurrentSort = sortOrder;
    ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
    ViewBag.DateSortParm = sortOrder == "Date" ? "date_desc" : "Date";

    if (searchString != null)
    {
        page = 1;
    }
    else
    {
        searchString = currentFilter;
    }

    ViewBag.CurrentFilter = searchString;

    var customers = from s in db.CUSTOMERS
                    select s;
    if (!String.IsNullOrEmpty(searchString))
    {
        customers = customers.Where(s => s.CustomerName.Contains(searchString)
                               || s.CustomerSurname.Contains(searchString));

        if (customers.GetEnumerator().MoveNext() == true)
        {
            int customeId = customers.SingleOrDefault(p => p.CustomerName.Contains(searchString)).CUSTID;

            var pAYMENT = db.PAYMENT.Include(p => p.CUSTOMERS).Include(p => p.LOCATION);
            pAYMENT = db.PAYMENT.Where(p => p.PaymentCustomer == customeId);

            int fLen = pAYMENT.Count();
            ViewBag.TextMessage = "Total " + fLen + " records were found.";

            switch (sortOrder)
            {
                case "name_desc":
                    pAYMENT = pAYMENT.OrderByDescending(s => s.PaymentCustomer);
                    break;
                default:  // Name ascending 
                    pAYMENT = pAYMENT.OrderBy(s => s.PaymentCustomer);
                    break;
            }

            int pageSize = 50;
            int pageNumber = (page ?? 1);
            return View(pAYMENT.ToPagedList(pageNumber, pageSize));
        }
        else
        {
            //var pAYMENT = db.PAYMENT.Include(p => p.CUSTOMERS).Include(p => p.LOCATION);
            var pAYMENT = db.PAYMENT.Include(p => p.CUSTOMERS).Include(p => p.LOCATION);
            pAYMENT = db.PAYMENT.Where(p => p.PaymentCustomer == 0);

            pAYMENT.DefaultIfEmpty();
            ViewBag.TextMessage = "No Data found...";
            return View(pAYMENT.ToList());
        }
    }
    else
    {
        var pAYMENT = db.PAYMENT.Include(p => p.CUSTOMERS).Include(p => p.LOCATION);
        int fLen = pAYMENT.Count();
         ViewBag.TextMessage = "Total " + fLen + " records were found.";
        return View(pAYMENT.ToList());
    }
在付款/索引中显示为:

[PAYID] [int] IDENTITY(1,1) NOT NULL,
[PaymentCustomer] [int] NOT NULL,
[PaymentAmount] [int] NOT NULL,
[PaymentLocation] [int] NOT NULL,
[PaymentActive] [bit] NOT NULL
PAYID   PaymentCustomer PaymentAmount   PaymentLocation PaymentActive
2   1   5   1   1
3   2   5   2   1
4   3   10  2   1
AAAA    5   Location 1  True
BBBB    5   Location 2  True
CCCC    0   Location 2  True
// GET: CUSTOMERS
public ActionResult Index(string sortOrder, string currentFilter, string searchString, int? page)
{
    //var cUSTOMERS = db.CUSTOMERS.Include(c => c.APPROVALAUTHORITY).Include(c => c.CRITERIA).Include(c => c.REQUESTFROM);
    //return View(cUSTOMERS.ToList());


    ViewBag.CurrentSort = sortOrder;
    ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
    ViewBag.DateSortParm = sortOrder == "Date" ? "date_desc" : "Date";

    if (searchString != null)
    {
        page = 1;
    }
    else
    {
        searchString = currentFilter;
    }

    ViewBag.CurrentFilter = searchString;

    var customers = from s in db.CUSTOMERS
                   select s;
    if (!String.IsNullOrEmpty(searchString))
    {
        customers = customers.Where(s => s.CustomerName.Contains(searchString)
                               || s.CustomerSurname.Contains(searchString));
    }
    switch (sortOrder)
    {
        case "name_desc":
            customers = customers.OrderByDescending(s => s.CustomerName);
            break;
        case "Date":
            customers = customers.OrderBy(s => s.CustomerRegistrationDate);
            break;
        case "date_desc":
            customers = customers.OrderByDescending(s => s.CustomerRegistrationDate);
            break;
        default:  // Name ascending 
            customers = customers.OrderBy(s => s.CustomerName);
            break;
    }

    int pageSize = 50;
    int pageNumber = (page ?? 1);
    return View(customers.ToPagedList(pageNumber, pageSize));
}
<p>
    @using (Html.BeginForm("Index", "CUSTOMERS", FormMethod.Get))
    {
        <div class="row">
            <div class="col-xs-6">
                <div class="input-group">
                    <span class="input-group-btn">
                        <button class="btn btn-default" type="submit">Müşteri Ara:</button>
                    </span>
                    @Html.TextBox("SearchString", ViewBag.CurrentFilter as string, new { @class = "form-control" })
                </div><!-- /input-group -->
            </div><!-- /.col-lg-6 -->
        </div><!-- /.row -->

    }
</p>
// GET: PAYMENT
public ActionResult Index(string sortOrder, string currentFilter, string searchString, int? page)
{
    ViewBag.CurrentSort = sortOrder;
    ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
    ViewBag.DateSortParm = sortOrder == "Date" ? "date_desc" : "Date";

    if (searchString != null)
    {
        page = 1;
    }
    else
    {
        searchString = currentFilter;
    }

    ViewBag.CurrentFilter = searchString;

    var customers = from s in db.CUSTOMERS
                    select s;
    if (!String.IsNullOrEmpty(searchString))
    {
        customers = customers.Where(s => s.CustomerName.Contains(searchString)
                               || s.CustomerSurname.Contains(searchString));

        if (customers.GetEnumerator().MoveNext() == true)
        {
            int customeId = customers.SingleOrDefault(p => p.CustomerName.Contains(searchString)).CUSTID;

            var pAYMENT = db.PAYMENT.Include(p => p.CUSTOMERS).Include(p => p.LOCATION);
            pAYMENT = db.PAYMENT.Where(p => p.PaymentCustomer == customeId);

            int fLen = pAYMENT.Count();
            ViewBag.TextMessage = "Total " + fLen + " records were found.";

            switch (sortOrder)
            {
                case "name_desc":
                    pAYMENT = pAYMENT.OrderByDescending(s => s.PaymentCustomer);
                    break;
                default:  // Name ascending 
                    pAYMENT = pAYMENT.OrderBy(s => s.PaymentCustomer);
                    break;
            }

            int pageSize = 50;
            int pageNumber = (page ?? 1);
            return View(pAYMENT.ToPagedList(pageNumber, pageSize));
        }
        else
        {
            //var pAYMENT = db.PAYMENT.Include(p => p.CUSTOMERS).Include(p => p.LOCATION);
            var pAYMENT = db.PAYMENT.Include(p => p.CUSTOMERS).Include(p => p.LOCATION);
            pAYMENT = db.PAYMENT.Where(p => p.PaymentCustomer == 0);

            pAYMENT.DefaultIfEmpty();
            ViewBag.TextMessage = "No Data found...";
            return View(pAYMENT.ToList());
        }
    }
    else
    {
        var pAYMENT = db.PAYMENT.Include(p => p.CUSTOMERS).Include(p => p.LOCATION);
        int fLen = pAYMENT.Count();
         ViewBag.TextMessage = "Total " + fLen + " records were found.";
        return View(pAYMENT.ToList());
    }
现在在Payment/Index中,我想构建SerchBox并按姓名搜索客户。我在我的客户/索引中做了类似的搜索框,如下所示。但我无法对我的支付/索引控制器实现相同的方法。我该怎么做

客户/索引控制器:

[PAYID] [int] IDENTITY(1,1) NOT NULL,
[PaymentCustomer] [int] NOT NULL,
[PaymentAmount] [int] NOT NULL,
[PaymentLocation] [int] NOT NULL,
[PaymentActive] [bit] NOT NULL
PAYID   PaymentCustomer PaymentAmount   PaymentLocation PaymentActive
2   1   5   1   1
3   2   5   2   1
4   3   10  2   1
AAAA    5   Location 1  True
BBBB    5   Location 2  True
CCCC    0   Location 2  True
// GET: CUSTOMERS
public ActionResult Index(string sortOrder, string currentFilter, string searchString, int? page)
{
    //var cUSTOMERS = db.CUSTOMERS.Include(c => c.APPROVALAUTHORITY).Include(c => c.CRITERIA).Include(c => c.REQUESTFROM);
    //return View(cUSTOMERS.ToList());


    ViewBag.CurrentSort = sortOrder;
    ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
    ViewBag.DateSortParm = sortOrder == "Date" ? "date_desc" : "Date";

    if (searchString != null)
    {
        page = 1;
    }
    else
    {
        searchString = currentFilter;
    }

    ViewBag.CurrentFilter = searchString;

    var customers = from s in db.CUSTOMERS
                   select s;
    if (!String.IsNullOrEmpty(searchString))
    {
        customers = customers.Where(s => s.CustomerName.Contains(searchString)
                               || s.CustomerSurname.Contains(searchString));
    }
    switch (sortOrder)
    {
        case "name_desc":
            customers = customers.OrderByDescending(s => s.CustomerName);
            break;
        case "Date":
            customers = customers.OrderBy(s => s.CustomerRegistrationDate);
            break;
        case "date_desc":
            customers = customers.OrderByDescending(s => s.CustomerRegistrationDate);
            break;
        default:  // Name ascending 
            customers = customers.OrderBy(s => s.CustomerName);
            break;
    }

    int pageSize = 50;
    int pageNumber = (page ?? 1);
    return View(customers.ToPagedList(pageNumber, pageSize));
}
<p>
    @using (Html.BeginForm("Index", "CUSTOMERS", FormMethod.Get))
    {
        <div class="row">
            <div class="col-xs-6">
                <div class="input-group">
                    <span class="input-group-btn">
                        <button class="btn btn-default" type="submit">Müşteri Ara:</button>
                    </span>
                    @Html.TextBox("SearchString", ViewBag.CurrentFilter as string, new { @class = "form-control" })
                </div><!-- /input-group -->
            </div><!-- /.col-lg-6 -->
        </div><!-- /.row -->

    }
</p>
// GET: PAYMENT
public ActionResult Index(string sortOrder, string currentFilter, string searchString, int? page)
{
    ViewBag.CurrentSort = sortOrder;
    ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
    ViewBag.DateSortParm = sortOrder == "Date" ? "date_desc" : "Date";

    if (searchString != null)
    {
        page = 1;
    }
    else
    {
        searchString = currentFilter;
    }

    ViewBag.CurrentFilter = searchString;

    var customers = from s in db.CUSTOMERS
                    select s;
    if (!String.IsNullOrEmpty(searchString))
    {
        customers = customers.Where(s => s.CustomerName.Contains(searchString)
                               || s.CustomerSurname.Contains(searchString));

        if (customers.GetEnumerator().MoveNext() == true)
        {
            int customeId = customers.SingleOrDefault(p => p.CustomerName.Contains(searchString)).CUSTID;

            var pAYMENT = db.PAYMENT.Include(p => p.CUSTOMERS).Include(p => p.LOCATION);
            pAYMENT = db.PAYMENT.Where(p => p.PaymentCustomer == customeId);

            int fLen = pAYMENT.Count();
            ViewBag.TextMessage = "Total " + fLen + " records were found.";

            switch (sortOrder)
            {
                case "name_desc":
                    pAYMENT = pAYMENT.OrderByDescending(s => s.PaymentCustomer);
                    break;
                default:  // Name ascending 
                    pAYMENT = pAYMENT.OrderBy(s => s.PaymentCustomer);
                    break;
            }

            int pageSize = 50;
            int pageNumber = (page ?? 1);
            return View(pAYMENT.ToPagedList(pageNumber, pageSize));
        }
        else
        {
            //var pAYMENT = db.PAYMENT.Include(p => p.CUSTOMERS).Include(p => p.LOCATION);
            var pAYMENT = db.PAYMENT.Include(p => p.CUSTOMERS).Include(p => p.LOCATION);
            pAYMENT = db.PAYMENT.Where(p => p.PaymentCustomer == 0);

            pAYMENT.DefaultIfEmpty();
            ViewBag.TextMessage = "No Data found...";
            return View(pAYMENT.ToList());
        }
    }
    else
    {
        var pAYMENT = db.PAYMENT.Include(p => p.CUSTOMERS).Include(p => p.LOCATION);
        int fLen = pAYMENT.Count();
         ViewBag.TextMessage = "Total " + fLen + " records were found.";
        return View(pAYMENT.ToList());
    }
Cudtomer/Index.cshtml:

[PAYID] [int] IDENTITY(1,1) NOT NULL,
[PaymentCustomer] [int] NOT NULL,
[PaymentAmount] [int] NOT NULL,
[PaymentLocation] [int] NOT NULL,
[PaymentActive] [bit] NOT NULL
PAYID   PaymentCustomer PaymentAmount   PaymentLocation PaymentActive
2   1   5   1   1
3   2   5   2   1
4   3   10  2   1
AAAA    5   Location 1  True
BBBB    5   Location 2  True
CCCC    0   Location 2  True
// GET: CUSTOMERS
public ActionResult Index(string sortOrder, string currentFilter, string searchString, int? page)
{
    //var cUSTOMERS = db.CUSTOMERS.Include(c => c.APPROVALAUTHORITY).Include(c => c.CRITERIA).Include(c => c.REQUESTFROM);
    //return View(cUSTOMERS.ToList());


    ViewBag.CurrentSort = sortOrder;
    ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
    ViewBag.DateSortParm = sortOrder == "Date" ? "date_desc" : "Date";

    if (searchString != null)
    {
        page = 1;
    }
    else
    {
        searchString = currentFilter;
    }

    ViewBag.CurrentFilter = searchString;

    var customers = from s in db.CUSTOMERS
                   select s;
    if (!String.IsNullOrEmpty(searchString))
    {
        customers = customers.Where(s => s.CustomerName.Contains(searchString)
                               || s.CustomerSurname.Contains(searchString));
    }
    switch (sortOrder)
    {
        case "name_desc":
            customers = customers.OrderByDescending(s => s.CustomerName);
            break;
        case "Date":
            customers = customers.OrderBy(s => s.CustomerRegistrationDate);
            break;
        case "date_desc":
            customers = customers.OrderByDescending(s => s.CustomerRegistrationDate);
            break;
        default:  // Name ascending 
            customers = customers.OrderBy(s => s.CustomerName);
            break;
    }

    int pageSize = 50;
    int pageNumber = (page ?? 1);
    return View(customers.ToPagedList(pageNumber, pageSize));
}
<p>
    @using (Html.BeginForm("Index", "CUSTOMERS", FormMethod.Get))
    {
        <div class="row">
            <div class="col-xs-6">
                <div class="input-group">
                    <span class="input-group-btn">
                        <button class="btn btn-default" type="submit">Müşteri Ara:</button>
                    </span>
                    @Html.TextBox("SearchString", ViewBag.CurrentFilter as string, new { @class = "form-control" })
                </div><!-- /input-group -->
            </div><!-- /.col-lg-6 -->
        </div><!-- /.row -->

    }
</p>
// GET: PAYMENT
public ActionResult Index(string sortOrder, string currentFilter, string searchString, int? page)
{
    ViewBag.CurrentSort = sortOrder;
    ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
    ViewBag.DateSortParm = sortOrder == "Date" ? "date_desc" : "Date";

    if (searchString != null)
    {
        page = 1;
    }
    else
    {
        searchString = currentFilter;
    }

    ViewBag.CurrentFilter = searchString;

    var customers = from s in db.CUSTOMERS
                    select s;
    if (!String.IsNullOrEmpty(searchString))
    {
        customers = customers.Where(s => s.CustomerName.Contains(searchString)
                               || s.CustomerSurname.Contains(searchString));

        if (customers.GetEnumerator().MoveNext() == true)
        {
            int customeId = customers.SingleOrDefault(p => p.CustomerName.Contains(searchString)).CUSTID;

            var pAYMENT = db.PAYMENT.Include(p => p.CUSTOMERS).Include(p => p.LOCATION);
            pAYMENT = db.PAYMENT.Where(p => p.PaymentCustomer == customeId);

            int fLen = pAYMENT.Count();
            ViewBag.TextMessage = "Total " + fLen + " records were found.";

            switch (sortOrder)
            {
                case "name_desc":
                    pAYMENT = pAYMENT.OrderByDescending(s => s.PaymentCustomer);
                    break;
                default:  // Name ascending 
                    pAYMENT = pAYMENT.OrderBy(s => s.PaymentCustomer);
                    break;
            }

            int pageSize = 50;
            int pageNumber = (page ?? 1);
            return View(pAYMENT.ToPagedList(pageNumber, pageSize));
        }
        else
        {
            //var pAYMENT = db.PAYMENT.Include(p => p.CUSTOMERS).Include(p => p.LOCATION);
            var pAYMENT = db.PAYMENT.Include(p => p.CUSTOMERS).Include(p => p.LOCATION);
            pAYMENT = db.PAYMENT.Where(p => p.PaymentCustomer == 0);

            pAYMENT.DefaultIfEmpty();
            ViewBag.TextMessage = "No Data found...";
            return View(pAYMENT.ToList());
        }
    }
    else
    {
        var pAYMENT = db.PAYMENT.Include(p => p.CUSTOMERS).Include(p => p.LOCATION);
        int fLen = pAYMENT.Count();
         ViewBag.TextMessage = "Total " + fLen + " records were found.";
        return View(pAYMENT.ToList());
    }

}从搜索框中获取名称

使用searchbox值从Customer表中获取CustomerID

int customeId = customers.Single(p => p.CustomerName.Contains(searchString)).CUSTID;
if(paymentcustomerId!= null)
{
 List<Payment> paymentDetails=payment.where(p=>p.PaymentCustomer ==paymentcustomerId).ToList();    
}
int customeId=customers.Single(p=>p.CustomerName.Contains(searchString)).CUSTID;
如果(paymentcustomerId!=null)
{
List paymentDetails=payment.where(p=>p.PaymentCustomer==paymentcustomerId.ToList();
}

使用paymentDetails列表进行显示。

您想为payment/index创建单独的搜索功能吗?您想按姓名搜索客户吗?是。我想为付款/索引添加新的搜索功能。请输入以下代码,将代码放在哪里?我需要类似于我的客户/索引控制器搜索功能。因为我使用PagedList。在控制器中使用上述代码,就像您的客户/索引
返回视图(paymentDetails.ToPagedList(pageNumber,pageSize))这里是我所做的,得到的错误是“不能隐式地将类型'System.Linq.IQueryable'转换为int”var payments=from p in db.PAYMENT select p;int paymentcustomerId=customers.Where(p=>p.CustomerName==searchString)。选择(e=>e.CUSTID);如果(paymentcustomerId!=null){List paymentDetails=payments.Where(p=>p.PaymentCustomer==paymentcustomerId).ToList();}customerId的数据类型是什么?问题出在int paymentcustomerId中。将paymentcustomerId类型更改为与CustomerId类型相同。如果两者都是int类型,我将更新我的问题(在最后一部分付款/索引中)