Ajax后脚本无法正常工作

时间:2015-11-16 10:54:08

标签: javascript ajax asp.net-mvc

这无疑是一个新手问题,但我找不到一个类似的问题。我想通过JS函数将模型传递给动作。我有Ajax脚本:

   var modelDataJSON = '@Html.Raw(Json.Encode(Model))';

    $.ajax({
        url: '@Url.Action("Action1", "Home")',
        type: 'POST',
        data: modelDataJSON,
        dataType: 'json'
    });

我有动作:

  public ActionResult Action1(MyModel modelDataJSON)
    {
        return Content(modelDataJSON.ToString());

    }

它没有做任何事情。我错过了什么?再次,抱歉新手问题,但我已经被困了太久了。

1 个答案:

答案 0 :(得分:0)

  

也许存在误解。我要问的是如何使用JS脚本重定向到Action1 URL。如果它运行,那么它将显示内容,因为它是一个内容动作。

如果要加载新页面,请不要使用Ajax。

要发出POST请求,您需要提交表单。

解决此问题的最佳方法是使用普通的常规HTML表单,而不是涉及JS。

如果您真的想要涉及JS,那么您可以生成表单。

var f = document.createElement("form");
f.action = myURL;
f.method = "POST";
// append inputs to the form to pass the data in modelDataJSON here
document.body.appendChild(f);
f.submit();

请注意,您无法以这种方式发送JSON有效内容(但尽管变量名称为modelDataJSON,但您的Ajax仍然会发送标准格式编码数据。)