在ASP.MVC2中使用JQuery的AJAX

时间:2010-06-29 13:14:48

标签: jquery asp.net-mvc ajax

我想通过Ajax获取内容并将其放入

我必须从Controler Action返回将其放入DIV?现在我有标准的ASP.MVC视图作为结果......

public ActrionResult MyAction() {
   return View();
}

在javascript中我有:

$.get(<url to controler action>, null, function(data) { $(#result).html(data); })

与MyAction相关的典型操作,重新加载页面完美无缺。但当我做$ .get(...)时,我在“数据”(内容和母版页)中获得了整页。如何才能获得View()的一部分,没有MsterPage ??

4 个答案:

答案 0 :(得分:1)

你可以返回部分:

public ActrionResult MyAction() 
{
   return PartialView();
}

MyAction.ascx部分包含一些HTML片段的地方:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<div>Hello</div>

inject this partial using an AJAX call加入#result div:

$('#result').load('/home/myaction');

答案 1 :(得分:0)

你想要使用

public ActrionResult MyAction() {
    var stuff = new { id = 1, name = "test" }; //or whatever stuff you need in your page
    return Json(stuff);
}
来自ActionResult方法的

答案 2 :(得分:0)

作为json响应的替代方法,您可以返回html。您需要做的就是从'data'变量中过滤并获取要追加的html。

$.get(<url to controler action>, null, function(data) { 
              $('#result').html($(data).find('#partOfViewID').html()); 
              });

答案 3 :(得分:0)

这对jquery / ajax来说不是问题。你需要一个返回局部视图的动作。不是一个返回主页面视图的人。

你可以使用这部分:

  

$。get(,null,   function(data){   $(#结果)。html的(数据); })

但您的操作必须包含与其关联的部分视图,而不是具有母版页的常规视图。

所以做一个新的动作。添加视图,选中部分视图复选框。并在该局部视图中放置您想要重新加载的内容。