我无法让代码使用 @Ajax.ActionLink MVC EF 执行存储过程



我构建了一个用于刷新查找表的存储过程。没有返回任何行。它只是在运行。

这是我在视图上的Ajax链接,可以启动它:

@Ajax.ActionLink(
    "Refresh Sample Points",
        " MakeNewSPIDTable",
        "Home",
    new AjaxOptions { 
        HttpMethod = "POST", 
        OnSuccess = "success" 
    }
   )

这是Json在我的家庭控制器中的操作结果:

[HttpPost]
public JsonResult MakeNewSPIDTable()
{
    var bitBucket = _db.ExecuteFunction("sp_RefreshWSFSPIDs");
    return Json("sp ran", JsonRequestBehavior.DenyGet);
 }

(我硬编码的"sp ran"文本只是为了发回一些东西。)

以下是应该弹出警报的成功功能:

function success(responseObject) {
    alert(responseObject);
}

我可以用各种方式运行存储过程,但不能用Ajax。我甚至怀疑Ajaz/Jason语法是否正确

感谢Alex、Moy和StackOverflow。现在我有了新的工具来解决这个疯狂科学家的问题。这是Mozilla中的Firebug,它准确地显示了Javascript错误发生的位置。有趣的是,IE4以前只是在窗口的底部框架中出现错误。

这似乎有效,并返回成功或失败的警报。我更改了存储过程名称中的一个字母,它"失败"并弹出警报。换句话说,OnSuccess和OnFailure起了作用。他们只有一种警觉。

@Ajax.ActionLink(
    "Refresh Sample Points",
        "MakeNewSPIDTable",
        "Home",
    new AjaxOptions { 
        HttpMethod = "POST",
        OnSuccess = "handleResultResponseRefreshSamplePoints()",
        OnFailure = "handleFailedSPIDrefresh()"
}
   )

我可以接受它,因为它满足了我的需要。然而,我无法让Controller成功返回字符串,或者我对Json返回对象没有任何语法知识。但我希望我的简单解决方案能帮助其他人。

[HttpPost]
public JsonResult MakeNewSPIDTable()
{
    var bitBucket = _db.ExecuteFunction("sp_RefreshWSFSPIDs");
    var name = "Json ran stored procedure";
    return Json(name, JsonRequestBehavior.DenyGet);
 }

最新更新