ASP.NET MVC部分视图渲染

时间:2014-05-15 10:03:55

标签: jquery asp.net-mvc-5 partial-views asp.net-mvc-partialview

我是ASP.NET MVC的初学者,我希望有一个这样的网站:

  • 加载所有css / js文件,订阅JavaScript事件,存储JavaScript变量的主页
  • 部分视图替换页面内容而不重新加载,并保留JavaScript变量等...

最好的方法是什么?

我试过了:

        $.ajax({
            url: '@Url.Action("Index", "Home")',
            data: { cardid: currentCardId },
            cache: false,
            type: "POST",
            dataType: "html",
            success: function (data) {
                SetData(data);
            }
        });

function SetData(data) {
    alert(data);
    $("#divPartialView").html(data);
}

在我的HomeController中,我返回一个PartialView();

(它不起作用,但它应该)

有简单/更好的方法吗?

我也尝试了这个,但它不起作用:

$('#divPartialView').load(@Html.Action("Index", "Home")));

另外,我可以在PartialView中定义模型吗?

1 个答案:

答案 0 :(得分:2)

你的例子应该有效

这是一个有效的例子

$.ajax({
      type: 'POST',
      url: '@Url.Action("ActionName", "ControllerName")',
      data: { id: $('#mycomponent').attr('data-id')},
      success: function (data2) {
                    $('#mydiv').html(data2);
               },
      error: function (a, b, c) {
            alert(a);
      }
});

我的控制器

public ActionResult ActionName(int id)
        {
            return PartialView("mypartialViewPath",id);
        }

部分视图

@model int
<div>
...content
</div>