0

我有个问题。我正在使用表单来创建一些东西,但是当我单击提交表单时,我调用了一个更改路由值的 js 函数。这很好用,但是我第一次尝试提交表单时,只有路由值发生了变化。我第二次尝试提交表单时,表单确实以正确的值发布。

如何更改此代码,以便表单更改路由值并在第一次单击时执行 Post(使用正确的值)。

形式:

@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 中得到的

参数字典包含“Evaluatietool.Controllers.FunctieBeschrijvingController”中方法“System.Web.Mvc.ActionResult CreateFunctiebeschrijvingPartial(Evaluatietool.Models.NieuweFunctiebeschrijvingViewModel, Int32)”的不可为空类型“System.Int32”的参数“sopt”的空条目'。可选参数必须是引用类型、可空类型或声明为可选参数。参数名称:参数

第二次单击导致 0 个错误。

4

0 回答 0