Невозможно воспроизвести.Если скрытое поле имеет атрибут Remote, вы не сможете отправить форму независимо от того, сколько раз вы нажмете кнопку отправки, если удаленная функция отправит false
.
Например:
Модель:
public class MyViewModel
{
[HiddenInput(DisplayValue = false)]
[Remote("Check", "Home")]
public string Id { get; set; }
[Required]
public string Name { get; set; }
}
Контроллер:
public class HomeController : Controller
{
public ActionResult Index()
{
return View(new MyViewModel
{
Id = "1"
});
}
[HttpPost]
public ActionResult Index(MyViewModel model)
{
return View(model);
}
public ActionResult Check(string Id)
{
return Json(Id == "2", JsonRequestBehavior.AllowGet);
}
}
Вид:
@model AppName.Models.MyViewModel
<script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script>
@using (Html.BeginForm())
{
@Html.EditorForModel()
<input type="submit" value="OK" />
}
Поскольку удаленная функция всегда будет возвращать false, эта форма не может бытьОтправлено.Если удаленная функция возвращает true, достаточно одного щелчка, чтобы отправить его, при условии, конечно, что другая проверка прошла.