0

我是 MVC 的新手。我正在使用 MVC4。我遇到了回调问题。如果我在 post() 调用之前和之后发出警报,则两个警报都会显示,但呼叫不会触发。

[HttpGet]
[Authorize]
public ActionResult Dashboard(int Menu)
{
 //some code
 return View("Dashboard");
}

<script>
    $(document).ready(function () {
        $.post("../Client/GetFact", {},
        function (data) {  
          //some code
        });
    });
</script> 

[HttpPost]
[Authorize]
public JsonResult GetFact()
{
    //some code to fill object_data

    var data = object_data;

    return Json(data);
}

只要我在没有参数的情况下离开 ActionResult Dashboard 就可以了。如果我向 Dashboard(int Menu) 添加参数,则对 GetFact 的回调不起作用。我搜索并找到了一个类似的帖子并按照你们给出的说明进行操作,但仍然不起作用(查看:getJSON not working if the mvc model view controller has a parameter)。我不知道我做错了什么。你能帮我吗?谢谢!

4

2 回答 2

0

这是一个简写的 Ajax 函数,相当于:

$.ajax({  type: "POST",
           url: url,  
          data: data,
       success: success,// -> call alert here  
      dataType: dataType}); 
于 2013-01-29T15:40:26.657 回答
0

我对 $.get 做了类似的事情,使用带有 @Url.Action 而不是 url 的 jquery。

除了使用 FormContext 传递给我的 Action :

就在@using (Html.BeginForm()) 之前

@{ ViewContext.FormContext = new FormContext(); }

例子 :

$.get('@Url.Action("ActionName", "ControllerName")', { IDName: $('#IdName').val() }, function (data) {
                    //Do Something here with the data
                });

我想表格帖子会是

$.post('@Url.Ation("ActionName", "ControllerName")', function (data) {
                     //Do Something here with the data
              });
于 2013-01-29T15:57:35.467 回答