我正在使用ASP.NET Web表单。我有一个带有导航栏的母版页,其中有一个链接链接,用于打开模式。
模态具有一些字段和一个asp:Button,OnClick将触发该事件,该事件会将数据保存到数据库。
问题是当我刷新页面时,我按下的最后一个按钮(在本例中为asp:Button)将触发,并将所有内容再次发送到数据库。
!IsPostback不起作用,因为当我单击模式时,似乎我已经在PostBack中。
这是我的代码的一部分:
MasterPage
<div class="modal fade" id="Div1" tabindex="-1" role="dialog" aria-labelledby="exampleModalLongTitle" aria-hidden="true" runat="server">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="modalCrearPropiedad">Crear Propiedad</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cerrar">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<div class="container-fluid">
<div class="row">
<div class="col-md-12">
<div class="form-group">
<label for="propietario">
Propietario:
</label>
<div class="form-group">
<asp:dropdownlist id="ddlPropietario"
cssclass="form-control"
tabindex="1"
placeholder="Seleccionar propietario..."
runat="server">
</asp:dropdownlist>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<asp:Button
Text="Guardar"
runat="server"
CssClass="btn btn-primary"
OnClick="BtnGuardarPropietario_Click"
UseSubmitBehavior="false"
data-dismiss="modal"></asp:Button>
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cerrar</button>
</div>
</div>
</div>
C#代码隐藏
protected void BtnGuardarPropietario_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection(connectionString);
SqlDataReader reader = null;
conn.Open();
try
{
SqlCommand cmd = new SqlCommand("SP_ControlAlquileres_AgregarPropietario", conn);
cmd.CommandType = CommandType.StoredProcedure;
Propietario propietario = new Propietario
{
TipoDocumento = Convert.ToInt32(ddlPropietario.SelectedItem.Value
};
cmd.Parameters.Add("@TipoDocumentoId", SqlDbType.Int).Value = propietario.TipoDocumento;
cmd.ExecuteNonQuery();
ScriptManager.RegisterStartupScript(this, this.GetType(), "myscript", @"function doSomeThing() {alert(""TestReady"");}", true);
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (conn != null)
{
conn.Close();
}
if (reader != null)
{
reader.Close();
}
}
}
我在这里做错什么了吗?有什么办法解决这个问题?预先感谢。