Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.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
ajax调用mvc控制器_Ajax_Asp.net Mvc - Fatal编程技术网

ajax调用mvc控制器

ajax调用mvc控制器,ajax,asp.net-mvc,Ajax,Asp.net Mvc,为什么此代码不起作用?。我收到“确定”,但看不到视图1(未加载视图1)。我希望通过prop1管理视图。如果prop1=“1”的值为“加载视图1” 希尔是我的控制器 [System.Web.Mvc.Route("Home/SubmitMyData/")] [System.Web.Http.HttpPost] public ActionResult SubmitMyData([FromBody]MyParamModel mydata) {

为什么此代码不起作用?。我收到“确定”,但看不到视图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;
    });

在javascript中,忽略服务器返回的HTML。试着把它改成

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

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

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

.success(function (data) {
     // data will contain your content
     $('#lblmessage').html(data);
 })
您以前使用的是
输出
,它似乎没有在脚本中的任何地方定义


此外,您可能需要检查作为
返回视图(“veiw1”)返回的视图的名称
看起来像是一个输入错误,应该是
返回视图(“View1”)

1:数据不重要。我只想调用“public ActionResult SubmitMyData”并返回“veiw1”。2:veiw1这个名字是真的。3:输出对我来说并不重要。这只是一条信息。假设您的
url
被正确解析,那么它应该正确调用它。2.我只是想确定那不是打字错误。3.您提到输出并不重要,但希望返回一个视图。在
success
函数中输出的参数(即上例中的
data
)将包含视图将呈现的所有HTML,因此如果要显示它,可以使用类似
$(element).HTML(data)的内容。您是否尝试在控制器操作中放置断点以确保正确填充模型?谢谢,它可以工作。如果你有时间,请引导我。这就是问题所在。但我不调用我的web api。我想加载新页面(视图)。但数据对我来说并不重要。我只想在我的控制器中调用“public ActionResult SubmitMyData([FromBody]MyParamModel mydata)”。