【问题标题】:Ajax.BeginForm with MVC is not going to my action带有 MVC 的 Ajax.BeginForm 不会执行我的操作
【发布时间】:2013-08-10 20:11:18
【问题描述】:

我在 MVC 中使用 Ajax 表单时遇到问题。突然出现以下错误:

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

似乎没有添加操作或调用任何简单的验证。在其他页面上,它似乎有效。我已经剥离了下面的基础知识,但它仍然不起作用。有什么想法吗?

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

<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();}

这是我的行动

 [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());
        }
    }

【问题讨论】:

  • 我将我的按钮更新为这个输入并且错误发生了一些变化。 localhost:50778/Evaluation/Setup/[object%20HTMLInputElement] 404 (Not Found) 看起来它正在将输入元素添加到 url 并删除操作。
  • 您应该将所有内容都包装在 @using(Ajax.BeginForm(){}) 中并删除 @{Html.EndForm();}
  • 您能否提供您的操作和正在使用的模型?
  • @afzalulh 我试过了,但也没有用。我将发布我的动作和模型

标签: asp.net .net ajax jquery asp.net-mvc-4


【解决方案1】:

在您的操作签名中将 String action 重命名为其他名称。您还必须重命名按钮名称。使用您现在拥有的代码,jquery.unobtrusive-ajax.js 提交处理程序正在尝试路由到按钮对象而不是正确的字符串 url 路由。

【讨论】:

  • 你先生是个天才!!!这就是问题所在。我以前使用“action”作为按钮的名称,但它是常规形式而不是 ajax 形式。我在这上面花了几个小时!!!!!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-11
相关资源
最近更新 更多