首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用MVC的Ajax.BeginForm不适合我的操作。

使用MVC的Ajax.BeginForm不适合我的操作。
EN

Stack Overflow用户
提问于 2013-08-10 20:11:18
回答 1查看 3.8K关注 0票数 3

我在MVC中使用Ajax表单时遇到了问题。从哪里得到以下错误:

POST http://localhost:50778/Evaluation/Setup/[object%20NodeList] 404 (未找到)

它似乎没有添加操作或调用任何简单的验证。在用户页上,这似乎是有效的。我已经把下面的基本知识都删掉了,但它仍然不起作用。有什么想法吗?

编辑:作为一种解决办法,我正在使用jquery提交表单,但我真的不认为我需要这样做。

代码语言:javascript
复制
<div id="form-message"></div>
@{Ajax.BeginForm("UpdateEvaluation", "Setup", new AjaxOptions { UpdateTargetId = "form-message", InsertionMode = InsertionMode.Replace}, new { @id = "evaluation-setup" });}

@Html.HiddenFor(model => model.fk_baa)
@Html.HiddenFor(model => model.lock_setup)


<div class="form-actions">
    <p><b>Note</b>: There is no spell check on this site. You may wish to create text in Word or another word processor and then copy-and-paste into the system. </p>
    <button name="action" type="submit" value="save" class="btn btn-primary">Save</button>
    <button id="apply-lock" name="action" type="submit" class="btn btn-success exempt" value="lock"><span class="ico fa"></span> Lock Setup</button>
</div>

@{Html.EndForm();}

这是我的行动

代码语言:javascript
复制
 [HttpPost]
    public ActionResult UpdateEvaluation(SetupEvaluationModel model, string action)
    {
        var valid = ModelState.IsValid;
        if (action.ToUpper().Equals("LOCK"))
        {
            return View("_Validation", model.Save(true));
        }
        else
        {

            return View("_Validation", model.Save());
        }
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-12 19:03:50

在操作签名中将String action重命名为不同的名称。你还得重命名你的按钮名。现在有了这些代码,jquery.unobtruous-ajax.js提交处理程序正在尝试路由到一个按钮对象,而不是正确的字符串url路由。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18165916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档