返回视图()不能使用Ajax调用.NET MVC

时间:2016-10-17 18:55:31

标签: ajax asp.net-mvc asp.net-mvc-4

我有一个特定的问题,我将数据发布到控制器中的MVC操作,如下所示:

$(".btnAnalyze").click(function () {
    if (jQuery.isEmptyObject(product_ids) == true) {
        alert("Array is empty");
    }
    else {
        var postData = { values: Object.keys(product_ids) };

        $.ajax({
            type: "POST",
            url: "/Analyze/Index",
            data: postData,
            dataType: "json",
            traditional: true
        });
    }
});

这是我的行动:

[HttpPost]
public ActionResult Index(List<string> values)
{
    List<string> Products = new List<string>();
    foreach (var id in values)
    {
        Products.Add(GetAllProductByID(id));
    }

    return View("Index");
}

由于某种原因,部分:

&#34;返回视图(&#34;索引&#34;)没有呈现我说要渲染的视图...

任何想法如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

这不会简单地刷新视图。您正在使用ajax调用调用控制器,这不会重新/渲染视图,它只是将视图作为html返回。你能检查一下ajax电话的结果吗?如果您在postman,soapui,fiddler或浏览器的F12调试器中测试您的端点,那么您应该看到从该ajax调用返回的内容。我会调查AjaxBeginForm作为BeginForm的替代方案。

此外,如果您只想对返回的数据执行某些操作,则只需返回

中的Json
return Json(Products, JsonBehavior.AllowGet);