无法在twitter引导程序按钮下拉列表中使用Ajax.ActionLink提交表单数据

时间:2014-01-09 16:30:30

标签: asp.net ajax asp.net-mvc twitter-bootstrap

我正在尝试提交搜索请求(SEGQuery),该搜索请求将根据用户从Twitter引导按钮下拉列表(SearchField)中选择的内容搜索特定字段。 SearchField保存在查询字符串中,我在检索时没有任何问题。但是,当我尝试发布SEGQuery时,它没有被发布到我的操作方法中,我不明白为什么。我试图使用Ajax.ActionLink助手而不是按钮,因为我希望能够保持twitter bootstrap下拉按钮的外观。

我遇到的另一个问题是即使Action方法被命中,它也不会像它应该重定向到SearchResults视图。

是否有明显的错误导致我的模型数据无法正确发布?

查看

@using (Html.BeginForm("SearchResults", "SEG", FormMethod.Post))
{
<div class="seg-search">
    <div class="input-append">
        @Html.TextBoxFor(m => m.SEGQuery, new {@class = "input-large-seg"})
        <div class="btn-group">
            <button class="btn dropdown-toggle" data-toggle="dropdown">
                Search
                <span class="caret"></span>
            </button>
            <ul class="dropdown-menu">
                <li>@Ajax.ActionLink("Company Name", "SearchResults", new {fieldId = 1}, new AjaxOptions{HttpMethod = "POST"})</li>
                <li>@Ajax.ActionLink("FOM Code", "SearchResults", new {fieldId = 2}, new AjaxOptions{HttpMethod = "POST"})</li>
            </ul>
        </div>
    </div>
</div>
}

1 个答案:

答案 0 :(得分:0)

如果我不明白你想要达到的目的,请纠正我:

您想在文本框中使用Id SEGQuery和选定的下拉值发布值吗?

快速浏览一下,你错过了一个类型=“提交”

我的问题是 1.为什么使用ActionLink作为下拉值 2.为什么没有下拉列表下方的按钮 - 更适合用户

我会将代码更改为

     @using (Html.BeginForm("SearchResults", "SEG", FormMethod.Post))
    {
    <div class="seg-search">
        <div class="input-append">
            @Html.TextBoxFor(m => m.SEGQuery, new {@class = "input-large-seg"})
            <div class="btn-group">                
                <ul class="dropdown-menu">
                    <li>@Ajax.ActionLink("Company Name", "SearchResults", new {fieldId = 1}, new AjaxOptions{HttpMethod = "POST"})</li>
                    <li>@Ajax.ActionLink("FOM Code", "SearchResults", new {fieldId = 2}, new AjaxOptions{HttpMethod = "POST"})</li>
                </ul>
<button class="btn dropdown-toggle" type="submit" data-toggle="dropdown">
                    Search
                    <span class="caret"></span>
                </button>
            </div>
        </div>
    </div>
    }