У меня была такая же проблема. Работал нормально на местном уровне, но случайный пользователь производства каким-то образом представлял страницу с частичными данными формы.
Из журнала я мог видеть, что HttpRequestFormVariables выглядел нормально до точки, а затем значения стали пустыми, в результате чего сайт выбрасывал необработанное исключение.
ctl00 $ MainContentPlaceHolder $ Foo $ rptForm $ CTL01 $ txtFormFieldId = 3815 ctl00 $ MainContentPlaceHolder $ Foo $ rptForm $ ctl02 $ txtFormFieldId = 3816 ctl00 $ MainContentPlaceHolder $ Foo $ rptForm $ ctl03 $ txtFormFieldId = 3817 ctl00 $ MainContentPlaceHolder $ Foo $ rptForm $ ctl04 $ txtFormFieldId = 3818 ctl00 $ MainContentPlaceHolder $ Foo $ rptForm $ ctl05 $ txtFormFieldId = ctl00 $ MainContentPlaceHolder $ Foo $ rptForm $ ctl05 $ txtFormFieldId =
единственный способ, которым я был способный воспроизводить его, заключается в добавлении некоторого Javascript в th e, чтобы отправить его до полной загрузки.
<script type="text/javascript">
$("input[id$='btnSubmit']").click();
</script>
Я подозреваю, что мне нужно будет отправить btnSubmit с сервера в отключенном состоянии, а затем включите его с Javascript после страницы завершения загрузки.
if (btnSubmit.Enabled)
{
btnSubmit.Enabled = false;
string script = "$(document).ready(function() {$(\"input[id$='" + btnSubmit.ClientID + "']\").removeAttr('disabled');});";
this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "EnableSubmitButton", script, true);
}
Как устанавливается выпадающий список SelectedValue? Если это делается на стороне сервера, ответ сервера на исходный запрос должен быть html, который отмечает соответствующий элемент как выбранный независимо от того, как скоро пользователь что-либо сделает. – jelbourn
Он устанавливается serveride, который является запутанной частью. Я думаю, это потому, что DOM не полностью загружен. На данный момент страница по-прежнему загружается. – Davy8