尽管在字段中输入了数据,Request.Form也不返回任何值

时间:2018-01-18 19:50:17

标签: c# asp.net twitter-bootstrap

我有一个Bootstrap Modal“addModal”,可以通过单击按钮打开。当我在名称字段和保存按钮(btnSubmit_Click)中添加名称时,我的Request.Form(“nameid”)给出一个空值。我是C#和ASPX的新手,所以我可能会在这里找到一些明显的东西。

我在同一页面中有两个模式,并且之前遇到问题正确地回传(earlier post)并尝试解决此问题。

我必须更改我之前的函数才能接收HtmlButton而不是Button,因为这是发件人类型。

任何方向都会受到赞赏。

ASPX:

<div id="addModal" class="modal fade" tabindex="-1" method="POST" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
    <div class="modal-body">
        <div class="row">
        <form role="form">
            <fieldset>
                <div class="form-group">
                    <label class="col-sm-2 control-label" for="textinput">Name</label>
                    <div class="col-sm-6">
                        <input type="text" name="nameid" id="nameid" class="form-control">
                    </div>
                </div>
            </fieldset>
            <div class="modal-footer">
                <button type="submit" class="btn btn-default">Cancel</button>
                <button type="submit" id="btnSubmitItem" class="btn btn-primary" OnServerClick="btnSubmit_Click" data-dismiss="modal" runat="server">Save</button> 
            </div>
        </form>
        </div>  
    </div>
</div>

C#:

public void btnSubmit_Click(Object sender, EventArgs e)
    {                   
        HtmlButton clickedButton = (HtmlButton)sender;
        Response.Write("<script language=javascript>alert('" + Request.Form("nameid")  +"');</script>");                        
        if ( clickedButton != null)
        {
            string name = String.Format("{0}",      Request.Form["nameid"]);    
        }               
    }

2 个答案:

答案 0 :(得分:1)

nameid需要一个名字&#39;属性。

输入类型=&#34;文字&#34; name =&#34; nameid&#34; id =&#34; nameid&#34;类=&#34;形状控制&#34;

<div id="addModal" class="modal fade" tabindex="-1" method="POST" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
    <div class="modal-body">
        <div class="row">
        <form role="form">
            <fieldset>
                <div class="form-group">
                    <label class="col-sm-2 control-label" for="textinput">Name</label>
                    <div class="col-sm-6">
                        <input type="text" name="nameid" id="nameid" class="form-control">
                    </div>
                </div>
            </fieldset>
            <div class="modal-footer">
                <button type="submit" class="btn btn-default">Cancel</button>
                <button type="submit" id="btnSubmitItem" class="btn btn-primary" OnServerClick="btnSubmit_Click" data-dismiss="modal" runat="server">Save</button> 
            </div>
        </form>
        </div>  
    </div>
</div>

答案 1 :(得分:1)

您可能希望切换到实际的aspnet控件。像TextBox一样。

<div class="form-group">
    <asp:Label ID="nameidLabel" runat="server" Text="Name" AssociatedControlID="nameid"></asp:Label>
    <div class="col-sm-6">
        <asp:TextBox ID="nameid" runat="server" CssClass="form-control"></asp:TextBox>
    </div>
</div>

然后在代码背后

public void btnSubmit_Click(Object sender, EventArgs e)
{
    ScriptManager.RegisterStartupScript(Page, Page.GetType(), "alerter", "alert('" + nameid.Text + "')", true);
}

如果您使用网络表单,请删除该form标记。页面上应该只有一个。

并使用ScriptManager代替Response.Write