当前位置:  开发笔记 > 编程语言 > 正文

Ajax调用MVC Controller返回"NOT FOUND"

如何解决《Ajax调用MVCController返回"NOTFOUND"》经验,为你挑选了1个好方法。

我试图用AJAX调用MVC Controller动作传递一些参数.
我有时在这个应用程序中这样做,它工作正常.
我不知道为什么只有这一个不起作用.

 function excluirDetalhe(button, tab) {
     var index = $(button).closest('tr').index();
     var myTable = document.getElementById(tab);
     var id = myTable.rows[index].cells[0].innerHTML.trim();
     $('#' + tab + ' tr:eq(' + index + ')').remove();
         $.ajax({                
             traditional: true,
             url: "entidades/gravaCookie",
             type: 'post',
             data: { id: id, detalhe: "E" },
             error: function (jqXHR, textStatus, errorThrown) {
                 alert(errorThrown);
             }
     });
 }

这是我的控制器方法:

public void gravaCookie(string id, string detalhe)
{
     string key = "een_id";
     if (detalhe.Equals("E"))
         key = "een_id";
     if (detalhe.Equals("C"))
         key = "eco_id";
     if (detalhe.Equals("B"))
         key = "eba_id";
     cookie.Values.Add(key, id);
}

只是提醒我,我正在做的其他Ajax调用,但只有这一个特别是不起作用.
有谁有想法吗?



1> Shyju..:

始终使用Url.ActionUrl.RouteUrlhtml辅助方法来构建操作方法的URL.无论您当前的页面/路径如何,它都会正确构建网址.

假设您的js代码在剃刀视图中,您可以直接使用Url.Action方法并将其分配给您的js变量.

url: "@Url.Action("gravaCookie","entidades")",

应该假设你有这样的动作方法

[HttpPost]
public ActionResult gravaCookie(string id,string detalhe)
{
  // to do : Return something
}

如果你的javascript在一个单独的javascript文件中,你可以使用上面的帮助器方法在你的剃刀视图中构建url,并将它保存在外部js文件代码可以访问的变量中.这样做时务必确保使用javascript命名空间,以避免全局javascript变量可能出现的问题.

@section Scripts
{
 
 

}

在你的PageSpecificExternalJsFile.js文件中,你可以像读取它一样

var urlToGrava= myApp.Urls.gravaCookieUrl
// Or With the base url, you may safely add the remaining url route.
var urlToGrava2= myApp.Urls.baseUrl+"entidades/gravaCookie";
// Use urlToGrava now

编辑

如果您只关心网站的根/基本网址,则可以将其/用作网址的第一个字符.

var urlToGrava2= "/entidades/gravaCookie";


@Nate这是不正确的.他正在`data`属性中传递他的数据,它将被正确映射到action方法参数.如果您有疑问,请随时粘贴代码并查看.我100%肯定.
推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有