代码之家  ›  专栏  ›  技术社区  ›  dcolumbus

ASP.NET MVC 2:Html.ActionLink控制器中的另一个函数?

  •  0
  • dcolumbus  · 技术社区  · 15 年前

    我在想控制器是怎么工作的。显然,当页面第一次加载时 ActionResult Index() 被称为。但是如何调用控制器中的其他函数呢?

    我试着用 Html.ActionLink("Click Me", "ControllerFunction") 但它只是在寻找一个名为“ControllerFunction”的页面

    我希望能够在控制器中调用一个函数来更新视图数据,然后刷新页面(或Ajax)。

    怎么会这样?因为现在控制器中唯一有用的功能是 Index()

    2 回复  |  直到 15 年前
        1
  •  0
  •   Darin Dimitrov    15 年前

    控制器:

    public HomeController : Controller
    {
        public ActionResult Index()
        {
            return View();
        }
    
        public ActionResult AjaxAction()
        {
            return View();
        }
    }
    

    然后在Index.aspx视图中,您可以有一个链接和一个空div,它将包含AJAX请求的结果:

    <%: Html.ActionLink("ajax test", "ajaxaction", null, 
        new { id = "ajaxtest" })%>
    <div id="result"></div>
    

    然后用javascript(在我的例子中是jquery)增强它:

    $(function() {
        $('#ajaxtest').click(function() {
            $('#result').load(this.href);
            return false;
        });
    });
    

    当您单击链接时,AJAX请求将发送到 /home/ajaxlink 会呈现出局部视图 AjaxAction.ascx 并将其内容插入result div。

        2
  •  0
  •   Stefanvds    15 年前

    你显然缺少了MVC的基本知识:)

    请看一下MVC的精彩介绍: http://channel9.msdn.com/blogs/matthijs/aspnet-mvc-2-basics-introduction-by-scott-hanselman