У меня есть фрагмент кода вида:
@using (Html.BeginForm(new { id="submitform"})) document.getElementById("submitform").submit();
и я получаю следующую ошибку:
Uncaught TypeError: Cannot read property 'submit'
Это не делает то, что вы думаете, что делает. Перегрузка для BeginForm, которая принимает объект как единственный параметр, использует его для RouteValues, а не для добавления атрибутов.
BeginForm
RouteValues
https://msdn.microsoft.com/en-us/library/system.web.mvc.html.formextensions.beginform(v=vs.118).aspx#M:System.Web.Mvc.Html.FormExtensions.BeginForm%28System.Web.Mvc.HtmlHelper,System.Object%29
Вы устанавливаете цель формы равной http://foo/bar?id=submitform вместо добавления атрибута id, поэтому на вашей странице нет элемента с id из submitform.
http://foo/bar?id=submitform
id
submitform
Ищите здесь перегрузку, для которой требуется htmlAttributes, чтобы установить идентификатор, или просто используйте <form id="submitform">.
htmlAttributes
<form id="submitform">
https://msdn.microsoft.com/en-us/library/system.web.mvc.html.formextensions.beginform(v=vs.118).aspx