ajax调用mvc控制器



为什么此代码不起作用?。我收到"ok",但我看不到视图1(视图1未加载)。我想通过prop1管理视图。如果prop1="1"的值加载视图1

希尔是我的控制器

[System.Web.Mvc.Route("Home/SubmitMyData/")]
        [System.Web.Http.HttpPost]
        public ActionResult SubmitMyData([FromBody]MyParamModel mydata)
        {

            if (mydata.Prop1.Equals("1"))
                return View("veiw1");
            else
                        return View("view2");

        }
        public class MyParamModel // #4
        {
            public string Prop1 { get; set; }
            public string Prop2 { get; set; }
        }

这是我的ajax调用

   $('#Buttonv').click(function () {
        var myData = {Prop1: "1", Prop2: ""}; // #1
        $.ajax({
            type: 'POST',
            data: myData, // #2
            url: '/Home/SubmitMyData',          
        })
           .success(function (data) {
               var output = "ok";
               $('#lblmessage').html(output);
           })
        .error(function (xhr, ajaxoption, thrownError) {
            $('#lblmessage').html("moshkelo" + xhr + "ajaxoption= " + ajaxoption + " throwerror=" + thrownError);
        });
        //return false;
    });

如果您从控制器返回视图,则需要确保您实际使用的是POST的success回调中的HTML内容:

.success(function (data) {
     // data will contain your content
     $('#lblmessage').html(data);
 })

您以前使用过output,它似乎没有在脚本中的任何位置定义。

此外,您可能需要检查返回的视图的名称,因为return View("veiw1");似乎是一个打字错误,应该是return View("View1");

在javascript中,您忽略了服务器返回的HTML。尝试将其更改为…

       .success(function (data) {
           $('#lblmessage').html(data);
       })

根据文档,success方法的第一个参数是服务器返回的数据。

相关内容

  • 没有找到相关文章

最新更新