我有问题。 我正在使用表单创建一些东西,但是当我点击提交表单时,我调用了一个更改routedvalue的js函数。这很好,但是第一次尝试提交表单时,只有路由值发生了变化。我第二次尝试提交表单时,表单会发布正确的值。
如何更改此代码,以便表单更改routedvalue并在第一次单击时执行Post(具有正确的值)。
FORM:
@using (Ajax.BeginForm("CreateFunctiebeschrijvingPartial", "Functiebeschrijving", null, new AjaxOptions { UpdateTargetId = "Functiebeschrijving", OnBegin = "return ConfirmDone()", OnSuccess = "handleSuccess" }, new { @id = "frmID" }))
{
JS:
function ConfirmDone() {
var form = document.getElementById('frmID');
if (confirm("This form saves default as Concept, would you like to save it as completed? 1 = Completed, 2 = Concept")) {
//option 1: save as completed
form.setAttribute('action', addDataToUrl(form.getAttribute('action'), 'sopt', 1));
}
else {
//Option 2: save as concept
form.setAttribute('action', addDataToUrl(form.getAttribute('action'), 'sopt', 2));
}
}
function addDataToUrl(url, name, value) {
var sep = url.indexOf('?') === -1 ? '?' : '&';
return url + sep + name + '=' + value;
}
编辑:
这是我第一次点击后在Fiddler2中得到的内容
参数字典包含参数'sopt'的非可空类型'System.Int32'的空条目,用于方法'System.Web.Mvc.ActionResult CreateFunctiebeschrijvingPartial(Evaluatietool.Models.NieuweFunctiebeschrijvingViewModel,Int32)'in 'Evaluatietool.Controllers.FunctieBeschrijvingController'。可选参数必须是引用类型,可空类型,或者声明为可选参数。 参数名称:参数
第二次点击导致0错误。