【问题标题】:ASP.NET MVC partial views renderingASP.NET MVC 局部视图渲染
【发布时间】:2014-05-15 10:03:54
【问题描述】:

我是 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 中定义模型吗?

【问题讨论】:

  • 您的第一个示例应该可以工作,并且是 IMO 的最佳方法。你检查过控制台是否有错误?

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


【解决方案1】:

你的例子应该可以工作

这是一个工作示例

$.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>

【讨论】:

  • 好吧,它似乎可以工作,但我的 JavaScript 中有一个 bool 变量。如果我在“$("#divPartialView").html(data);”之前对变量进行警告,它会显示“true”。但是之后,当我从局部视图发出警报时,它显示“假......你知道为什么吗?
  • @Gab 哪个是变量?我可以看到代码吗?请记住,该变量仅存在于成功上下文中
  • 我有一个布局文件。在布局中,我初始化变量:“var myVariable = false”,在一个 div 中,我有“@RenderBody()”然后我的主视图使用这个布局。我将变量设置为 true,然后调用 ajax 函数并从我的局部视图中警告变量。就像页面被重新加载...如果我直接在我的主视图中而不是在布局中初始化变量,它可以工作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-06
  • 1970-01-01
相关资源
最近更新 更多