Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用ajax调用MVC部分视图中的按钮单击操作方法?_C#_Jquery_Ajax_Asp.net Mvc_Asp.net Mvc 4 - Fatal编程技术网

C# 如何使用ajax调用MVC部分视图中的按钮单击操作方法?

C# 如何使用ajax调用MVC部分视图中的按钮单击操作方法?,c#,jquery,ajax,asp.net-mvc,asp.net-mvc-4,C#,Jquery,Ajax,Asp.net Mvc,Asp.net Mvc 4,我是MVC新手。我遇到了一种情况,需要在单击按钮时将参数从视图传递到控制器(按钮处于部分视图),然后在同一页面中呈现另一个部分视图 以下步骤: 我使用jquery按钮单击事件作为部分视图的按钮 我进行了一个ajax调用,将参数从视图传递给控制器 以下是我的代码: $(document).on("click", "#btninPartialView", function(e){ var data = $("txtinPartialView").val(); $("#mainPage

我是MVC新手。我遇到了一种情况,需要在单击按钮时将参数从视图传递到控制器(按钮处于部分视图),然后在同一页面中呈现另一个部分视图

以下步骤:

  • 我使用jquery按钮单击事件作为部分视图的按钮
  • 我进行了一个ajax调用,将参数从视图传递给控制器
  • 以下是我的代码:

    $(document).on("click", "#btninPartialView", function(e){
        var data = $("txtinPartialView").val();
        $("#mainPageContainer").load("/Controller/Action", data, function(){
            $.ajax({
                //url: @Url.Action("Action", "Controller"),
                type: GET,
                data: {
                    id: data
                },
                success: function(){
                }
                error: function(){
                }
            })
        }    
    })
    
    问题: 问题是,我在action方法中收到的数据是
    null

    如果我遗漏了什么,请告诉我


    提前感谢。

    请检查您的操作方法接受的参数

    例如,如果签名是

    public ActionResult Action1(string name)
    
    然后,您需要将数据作为

    var data = { name :  $("txtinPartialView").val() }
    

    这应该是可行的。

    问题是您将jquery ajax和load函数混合在一起,load函数在后台发送ajax调用,因此您需要使用其中一个,而不是两个,所以请尝试如下操作:

    $(document).on("click", "#btninPartialView", function(e){
    
            $.ajax({
                url: '@Url.Action("Action", "Controller")',
                type: GET,
                data: {
                    id: $("txtinPartialView").val()
                },
                success: function(response){
                    $("#mainPageContainer").html(response);
                },
                error: function(){
                }
            });
     });
    

    请提供控制器的方法代码。单击按钮后,请使用chrome开发者工具控制台选项卡进行检查,如果没有,请检查是否有错误。如果ajax调用成功,请检查网络选项卡。。如果不成功,请告诉我错误。为什么同时使用load和ajax callYes,它是相同的签名。我使用的签名如下:public ActionResult Action(string id){}当我使用@Url.Action时,它对我不起作用,但Url:“/controller/Action”工作得很好。谢谢你们。。
    $(document).on("click", "#btninPartialView", function(e){
    
            $.ajax({
                url: '@Url.Action("Action", "Controller")',
                type: GET,
                data: {
                    id: $("txtinPartialView").val()
                },
                success: function(response){
                    $("#mainPageContainer").html(response);
                },
                error: function(){
                }
            });
     });