C# MVC-从视图调用控制器

C# MVC-从视图调用控制器,c#,asp.net,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-4,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc 4,我是MVC新手 我正在使用MVC开发一个web应用程序,该应用程序只包含一个页面 因此,在这个视图中,我必须填充多个数据。假设应用程序是“新闻提要”应用程序,我需要填充最近的新闻、您喜欢的新闻、您朋友推荐的新闻等。那么我是否应该从视图向所有必需的控制器发出ajax调用,以获取这些数据并附加到视图中 目前,我可以通过对控制器进行ajax调用并获取数据来获取数据,但据我所知,在MVC中首先调用控制器,它呈现视图,并且以我当前使用的方式,我正在从视图中调用控制器 这个方法正确吗??在MVC中实现这一结

我是MVC新手

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

因此,在这个视图中,我必须填充多个数据。假设应用程序是“新闻提要”应用程序,我需要填充最近的新闻、您喜欢的新闻、您朋友推荐的新闻等。那么我是否应该从视图向所有必需的控制器发出ajax调用,以获取这些数据并附加到视图中

目前,我可以通过对控制器进行ajax调用并获取数据来获取数据,但据我所知,在MVC中首先调用控制器,它呈现视图,并且以我当前使用的方式,我正在从视图中调用控制器

这个方法正确吗??在MVC中实现这一结果的正确方法是什么

如果我必须使用Ajax调用controller并获取数据,MVC中会有什么不同? 在三层应用程序中,我将对一些web方法或处理程序进行ajax调用,这些方法或处理程序将返回一些数据 这里我调用一个action result函数,它再次返回一些数据,您可以使用:

在你看来,可以这样称呼:

 @Html.Action("GetLatestNews","Home")

是的,您可以像这样使用ajax调用

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

                      alert("go");
                  });
            });
        });
然后从控制器加载局部视图

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();
        }

您可以使用
@Html.Action(“ActionName”、“ControllerName”)
调用razor中的每个视图,也可以使用
ViewBag.PropertyName
填充来自不同来源的所有数据,即ViewBag.Property1、ViewBag.Property2。。。在
ActionMethod
中,然后在视图中,枚举或从
ViewBag
获取结果集,但@Html.Action不是ajax调用。jquery必须调用操作GetLastTestNews,并且必须将结果(来自partial的HTML代码)插入到DOM中。还是我遗漏了什么?那么MVC会有什么不同呢?在3层应用程序中,我将对一些web方法进行ajax调用,我在这里调用一个action result函数
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();
        }