MVC - 从视图调用控制器

Vig*_*ian 8 c# asp.net asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

我是MVC的新手

我正在使用MVC开发Web应用程序,该应用程序只包含一个页面.

所以在那个视图中我必须填充多个数据.假设应用程序是"新闻源"应用程序,我需要填充最近的新闻,您喜欢的新闻,朋友推荐的新闻等.所以我应该从视图到所有必需的控制器进行ajax调用以获取这些数据并追加在视图??

目前我能够通过对控制器进行ajax调用并获取数据来获取数据,但根据我的理解,控制器首先在MVC中被调用,并呈现视图和我当前使用的方式我正在调用控制器从视图返回.

这种方法是否正确?在MVC中实现此结果的正确方法是什么?

如果我必须使用Ajax调用控制器并获取数据,那么MVC会有什么不同?在3层应用程序中,我将调用一些web方法或一个Handler,它将在这里返回一些数据我正在调用一个动作结果函数,它再次返回一些数据

小智 6

是的你可以像这样使用ajax调用

$(document).ready(function () {
            $('#CategoryId').change(function () {
                $.getJSON('/Publication/AjaxAction/' + this.value, {},
                  function (html) {
                      $("#partial").html(html);

                      alert("go");
                  });
            });
        });
Run Code Online (Sandbox Code Playgroud)

然后从您的控制器加载部分视图.

public ActionResult AjaxAction(int Id)
        {
            if (Request.IsAjaxRequest())
            {
                if (Id== 1)
                {
                    ViewBag.SourceTypeId = new SelectList(db.SourceTypes, "Id", "Title");
                    ViewBag.CityId = new SelectList(db.Cities, "Id", "Title");
                    return PartialView("_CreateStatya");
                }
            }
            return PartialView();
        }
Run Code Online (Sandbox Code Playgroud)