【问题标题】:Why Actionresult Method is not called from javascript为什么不从 javascript 调用 Actionresult 方法
【发布时间】:2013-02-21 12:21:50
【问题描述】:

当我必须将此语句写入 Javascript 以调用具有 ID 的控制器 Actionresult 方法时

 function submitForm(state)
 {


     if (state != "") 
     {

         alert("Hellooo");

         var ele = document.getElementById('gridform').elements;

        var strvalue = "";

        for (var i = 0; i < ele.length; i++) 
        {

            if (ele[i].type == "checkbox") 
            {

                if (ele[i].name == "chkactive[]")
                 {

                     if (ele[i].checked == true)
                     {

                        if (strvalue != "")
                            strvalue = strvalue + "," + ele[i].value;
                        else
                            strvalue = ele[i].value;

                    }

                }
            }

        }

    }

    alert("ok fine" + strvalue);

    if (strvalue != null) 
    {
        alert("NOT Null");
    }


    $.post('@Url.Action("Useractive","Admin", new{})' + '?Id=' + strvalue);

但我无法调用管理控制器的 UserActive 方法 调用此语句时我不会收到任何错误,但只是没有使用 id 导航到控制器的方法... 请帮助我是什么原因我做错了..!

这是我的控制器操作方法:-

public ActionResult Useractive(string Id)
    {

        int[] numbers = Id.Split(',').Select(n => int.Parse(n)).ToArray();

        foreach (int id in numbers)
        {
            User_Master u_master = db.User_Masters.Find(id);
            if (u_master.Is_active == "False")
            {
                u_master.Is_active = "True";
                db.Configuration.ValidateOnSaveEnabled = false;
                db.SaveChanges();

            }

        }

        return RedirectToAction("Userlist","Admin");

    }

【问题讨论】:

  • 在您使用的任何浏览器上,您是否在控制台中看到任何有关开发工具的消息?我修剪了你的 javascript 并将硬编码的 strvalue 发布到实现你的方法的精简管理控制器(跳过数据库内容,在用户列表中返回一个字符串),一切似乎都正常。
  • 先生....上面我已经发布了我的声明在我的正常项目中运行良好,但是当我必须在 IIS 上托管我的项目并在那时运行它时这不起作用控制器的执行和动作结果方法没有被调用......但通常可以执行所以请帮助我..! @乔

标签: asp.net asp.net-mvc-3 razor


【解决方案1】:

尝试修复您的 .post 方法:

$.post("@Url.Action(MVC.Admin.UserActive())", { Id: strvalue) }, function(data) {
    //Do Something.
});

【讨论】:

  • $.post('@Url.Action("Useractive","Admin", new{})' + '?Id=' + strvalue); ......此语句在我的正常项目中有效,并调用控制器的操作方法,但是当我在 IIS 上托管我的项目时,此语句不起作用,控制器的操作方法不调用,虽然这不起作用那么,这背后的原因是什么..请帮助我..!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-08
  • 2020-08-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-01
相关资源
最近更新 更多