使用控制器操作更新div,而无需在ASP MVC中重新填充页面

时间:2012-03-14 10:58:18

标签: jquery asp.net-mvc-3 razor controller

我在我的控制器中有这个动作

public ActionResult TestItemLogistic()
    {
        ControlViewModel model = new ControlViewModel();
        model.itemSelected = "Logistic";
        return RedirectToAction("MenuList", model);

    }

点击

后会调用此操作
<a href=@url.Action(subItem.action, subItem.controller)>

我希望能够在不为页面充电的情况下完成所有这些操作,而只需更新一些div。

任何想法?

感谢。

3 个答案:

答案 0 :(得分:0)

您可以使用.load将所选元素的内容替换为从URL检索到的HTML输出。

说你有

<a href="@url.Action(subItem.action, subItem.controller)" id="ClickMe">Click Me</a>
<div id="ReplaceMe"></div>

你可以这样做:

<script type="text/javascript">
 $(function() {
    $('#ClickMe').click(function(e) {
       e.preventDefault();
       $('#ReplaceMe').load($(this).attr('href'));
    });
 });
</script>

编辑:我现在看到,您需要一个指向操作的链接,该链接返回一个URL,然后您想要加载该结果URL的内容。

public ActionResult TestItemLogistic()
{
    ControlViewModel model = new ControlViewModel();
    model.itemSelected = "Logistic";

    UrlHelper u = new UrlHelper(ControllerContext.RequestContext);
    return Content(u.Action("MenuList", model));

}


<script type="text/javascript">
 $(function() {
    $('#ClickMe').click(function(e) {
       e.preventDefault();
       $.get($(this).attr('href'), function(url) {
              $('#ReplaceMe').load(url);
       });
    });
 });
</script>

答案 1 :(得分:0)

您可以通过将Ajax与jQuery一起使用来实现此目的 上面的http://api.jquery.com/jQuery.ajax/是jquery ajax的文档

答案 2 :(得分:0)

您何时从视图中使用Ajax属性。您可以添加一个可以通过id

更新任何元素的链接
@Ajax.RouteLink("TestLink", new { controller = "Persoon", action = "Partial" },new AjaxOptions() { InsertionMode = System.Web.Mvc.Ajax.InsertionMode.Replace UpdateTargetId = "Id Element"})

试试这个