Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.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网站中的搜索文本框传递到';Search.aspx';页_C#_Asp.net - Fatal编程技术网

C# 如何将字符串数组从asp.net网站中的搜索文本框传递到';Search.aspx';页

C# 如何将字符串数组从asp.net网站中的搜索文本框传递到';Search.aspx';页,c#,asp.net,C#,Asp.net,我一直在开发一个asp.NETC#网站,刚刚开始实施搜索。我有一个search.aspx页面,使用全文搜索,代码如下: protected List<string> keywords = new List<string>(); protected void btnSearch_Click(object sender, EventArgs e) { // Turn user input to a list of keywords.

我一直在开发一个asp.NETC#网站,刚刚开始实施搜索。我有一个search.aspx页面,使用全文搜索,代码如下:

    protected List<string> keywords = new List<string>();

    protected void btnSearch_Click(object sender, EventArgs e)
    {
        // Turn user input to a list of keywords.
        string[] keywords = tbKeyWords.Text.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries);

        // The basic validation.
        if (keywords.Length <= 0)
        {
            lbAlert.Text = "Please input keyword.";
            return;
        }
        this.keywords = keywords.ToList();

        // Do search operation with DataAccess.cs page.
        DataAccess dataAccess = new DataAccess();
        List<Article> list = dataAccess.Search(this.keywords);

        ShowResult(list);
    }
受保护列表关键字=新列表();
受保护的无效BTN搜索单击(对象发送者,事件参数e)
{
//将用户输入转换为关键字列表。
string[]keywords=tbKeyWords.Text.Split(新字符串[]{”“},StringSplitOptions.RemoveEmptyEntries);
//基本验证。

如果(keywords.Length您可以将它存储在搜索框控件/母版页/任何内容的
会话中,然后从搜索页面的
页面加载它(我建议在此之后从
会话中删除它)

让搜索框重定向到带有查询字符串中参数的搜索页面。然后让搜索页面使用查询字符串或使用按钮单击,具体取决于发生的情况。您的
search.aspx
可能包含以下代码:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack && !String.IsNullOrEmpty(Request.QueryString["searchTerm"]))
    {
        string[] keywords = Request.QueryString["searchTerm"].ToString().Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries);
        RunSearch(keywords);
    }
}

protected void btnSearch_Click(object sender, EventArgs e)
{
    string[] keywords = tbKeyWords.Text.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries);
    RunSearch(keywords);
}

private void RunSearch(string[] keywords)
{
    if (keywords.Length <= 0)
    {
        lbAlert.Text = "Please input keyword.";
        return;
    }
    this.keywords = keywords.ToList();

    // Do search operation with DataAccess.cs page.
    DataAccess dataAccess = new DataAccess();
    List<Article> list = dataAccess.Search(this.keywords);

    ShowResult(list);
}
未经请求的意见

您在网站的主表单(带有
runat=“server”
的表单)中说明了这一点。我个人的建议是将您的搜索框移到该表单之外,如:

<form action="javascript:searchSite()">
    <input type="text" id="searchInput"  />
</form>


为什么?如果它们出现在您的登录页面上,并在搜索框中键入并单击“输入”(典型的用户行为),那么搜索将启动吗?还是默认的“提交”按钮将启动并尝试让他们登录,这可能会给他们带来错误?在我看来,这是避免混淆的最简单方法。

搜索文本框的格式是否与带有
runat=“server”的格式不同
在它上面?不,这就是它的表单inIt取决于你提交表单的方式。它实际上是用javascript重定向的吗?或者它是在你重定向后执行一些代码吗?是的,但是如果这是一个
asp:Textbox
ID可能不匹配。你可能需要发布你的代码。如果它是一个服务器控件,你需要使用
ddocument.getElementById(“”)
。JavaScript函数中的大小写匹配吗?我最初的帖子都是小写。而且该表单必须在其他主表单之外。谢谢Mike!!!我故意将其放在结束标记之前,愚蠢的我。0。o只是一个简单的问题,这会将文本框放在左下角,因为它不是我其他表单的一部分。我可以使用吗CSS将它向上定位到搜索框应该位于的顶部?
<form action="javascript:searchSite()">
    <input type="text" id="searchInput"  />
</form>