标签: partial-views

Html.Partial vs Html.RenderPartial&Html.Action vs Html.RenderAction

在ASP.NET MVC中,有什么区别:

  • Html.PartialHtml.RenderPartial
  • Html.ActionHtml.RenderAction

.net asp.net-mvc renderpartial partial-views renderaction

1013
推荐指数
12
解决办法
56万
查看次数

如何根据AngularJS局部视图动态更改标题?

我使用ng-view包含AngularJS部分视图,我想根据包含的视图更新页面标题和h1标题标记.这些超出了部分视图控制器的范围,因此我无法弄清楚如何将它们绑定到控制器中的数据集.

如果它是ASP.NET MVC你可以使用@ViewBag来做到这一点,但我不知道AngularJS中的等价物.我搜索过共享服务,事件等但仍无法使其正常工作.任何方式来修改我的例子,所以它的工作将非常感激.

我的HTML:

<html data-ng-app="myModule">
<head>
<!-- include js files -->
<title><!-- should changed when ng-view changes --></title>
</head>
<body>
<h1><!-- should changed when ng-view changes --></h1>

<div data-ng-view></div>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我的JavaScript:

var myModule = angular.module('myModule', []);
myModule.config(['$routeProvider', function($routeProvider) {
    $routeProvider.
        when('/test1', {templateUrl: 'test1.html', controller: Test1Ctrl}).
        when('/test2', {templateUrl: 'test2.html', controller: Test2Ctrl}).
        otherwise({redirectTo: '/test1'});
}]);

function Test1Ctrl($scope, $http) { $scope.header = "Test 1"; 
                                  /* ^ how can I put this in title and h1 */ }
function Test2Ctrl($scope, $http) { …
Run Code Online (Sandbox Code Playgroud)

javascript templates partial-views angularjs angular-routing

410
推荐指数
12
解决办法
25万
查看次数

使用Razor View Engine从部分视图ASP.NET MVC 3中将内容注入特定部分

我在本节中定义了此部分 _Layout.cshtml

@RenderSection("Scripts", false)
Run Code Online (Sandbox Code Playgroud)

我可以从视图中轻松使用它:

@section Scripts { 
    @*Stuff comes here*@
}
Run Code Online (Sandbox Code Playgroud)

我正在努力的是如何从局部视图中获取本节内注入的一些内容.

我们假设这是我的视图页面:

@section Scripts { 

    <script>
        //code comes here
    </script>
}

<div>
    poo bar poo
</div>

<div>
  @Html.Partial("_myPartial")
</div>
Run Code Online (Sandbox Code Playgroud)

我需要Scripts_myPartial局部视图中注入部分内容.

我怎样才能做到这一点?

asp.net asp.net-mvc partial-views razor asp.net-mvc-3

316
推荐指数
8
解决办法
19万
查看次数

如何将参数传递给mvc 4中的局部视图

我有这样的链接:

 <a href='Member/MemberHome/Profile/Id'><span>Profile</span></a>
Run Code Online (Sandbox Code Playgroud)

当我点击它时,它会调用这个部分页面:

 @{
    switch ((string)ViewBag.Details)
    {

        case "Profile":
        {
           @Html.Partial("_Profile"); break;
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

部分页面_Profile包含:

Html.Action("Action", "Controller", model.Paramter) 
Run Code Online (Sandbox Code Playgroud)

例:

@Html.Action("MemberProfile", "Member", new { id=1 })   // id is always changing
Run Code Online (Sandbox Code Playgroud)

我怀疑的是我如何将这个"Id"传递给model.parameter部分

我的控制器是:

 public ActionResult MemberHome(string id)
    {
        ViewBag.Details = id;
        return View();
    }
  public ActionResult MemberProfile(int id = 0)
    {
        MemberData md = new Member().GetMemberProfile(id);
        return PartialView("_ProfilePage",md);
    }
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc partial-views razor asp.net-mvc-4

145
推荐指数
4
解决办法
24万
查看次数

Rails:对将locals传递给partials的语法感到困惑

理解Rails"魔术"关于渲染部分(并将局部传递到它们中).

为什么这样做:

<%= render "rabbits/form" %>
Run Code Online (Sandbox Code Playgroud)

这项工作:

<%= render "rabbits/form", :parent => @warren, :flash => flash %>
Run Code Online (Sandbox Code Playgroud)

但是这并不能正常工作:

<%= render "rabbits/form", :locals => { :parent => @warren, :flash => flash } %>
Run Code Online (Sandbox Code Playgroud)

但这样做:

<%= render :partial =>"rabbits/form", :locals => { :parent => @warren, :flash => flash } %>
Run Code Online (Sandbox Code Playgroud)

另外,我怎样才能查看这些细微差别所以我不需要在SO上打扰人们?

ruby-on-rails partial-views

98
推荐指数
2
解决办法
2万
查看次数

如何在webform中包含局部视图

我正在编程的一些网站正在使用ASP.NET MVC和WebForms.

我有局部视图,我想将其包含在webform中.部分视图有一些必须在服务器中处理的代码,因此使用Response.WriteFile不起作用.它应该与禁用javascript一起使用.

我怎样才能做到这一点?

asp.net asp.net-mvc webforms partial-views

78
推荐指数
5
解决办法
5万
查看次数

在ASP.net MVC 4中使用部分视图

我最近开始玩ASP.net MVC(4),但我无法解决我遇到的这个问题.我相信你知道它很容易.

我基本上试图在我的索引视图中执行以下操作:

  1. 在Index视图中列出数据库中"Note"类型的当前项(这很容易)
  2. 在同一个索引视图中创建新项目(不是那么容易).

所以我想我需要一个局部视图,并且我创建了如下(_CreateNote.cshtml):

@model QuickNotes.Models.Note
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)

<fieldset>
    <legend>Note</legend>

    <div class="editor-label">
        @Html.LabelFor(model => model.Content)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.Content)
        @Html.ValidationMessageFor(model => model.Content)
    </div>
    <p>
        <input type="submit" value="Create" />
    </p>
</fieldset>
}
Run Code Online (Sandbox Code Playgroud)

在我原来的索引视图(Index.cshtml)中,我正在尝试渲染此局部视图:

@model IEnumerable<QuickNotes.Models.Note>


@{
    ViewBag.Title = "Personal notes";
}

<h2>Personal notes</h2>

<p>
    @Html.ActionLink("Create New", "Create")
</p>

<table>
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.Content)
        </th>
        <th></th>
    </tr>

    @foreach (var item in Model) {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.Content)
            </td>
            <td>
                @Html.ActionLink("Edit", "Edit", new { id=item.ID …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc partial-views razor asp.net-mvc-4

77
推荐指数
2
解决办法
23万
查看次数

在部分视图中包含JavaScript文件

我想知道在部分视图中包含javascript文件的最佳做法是什么.一旦渲染,这将最终作为我的页面的html中间的js包含标记.从我的角度来看,这不是一个很好的方法.它们属于head标签,因此不应阻止浏览器一次性呈现html.

一个例子: 我在'PictureGallery'局部视图中使用了一个jquery picturegallery插件,因为这个局部视图将在几个页面上使用.这个插件只需要在使用这个视图时加载,我不想知道每个局部视图使用哪些插件......

谢谢你的回答.

javascript asp.net-mvc jquery partial-views

69
推荐指数
1
解决办法
4万
查看次数

将JavaScript放在部分视图中是否可以

我正在使用Web应用程序,其中主页面包含两个部分:始终可见的常量块和由3个部分视图之一组成的信息块.每个部分视图都作为AJAX请求的结果出现,并且只加载一次(在jquery提供切换窗口之后).它运作良好,但我遇到了一个问题.

部分视图的html代码包含在常量块和info-block中使用的js函数.当页面加载时,这些函数可以"看到"彼此并且它可以工作,但是resharper找不到函数声明并警告我这一点.我无法通过将它们转移到外部js文件来解决问题,因为razor语法可以在他们的代码中找到.

我该怎么办?

谢谢.

更新:

最后,我决定解决将js代码与视图分离的问题.所以新的问题是如何将razor语法包含到js文件中或者什么是可接受的替代方案.我发现的流行解决方案是使用全局变量,数据属性和我更喜欢的解决方案 - John Katsiotis的RazorJS库.

http://djsolid.net/blog/razorjs---write-razor-inside-your-javascript-files

我希望它能够稳定运行并使Resharper感到高兴.

干杯!

更新:

3年后,我回忆起这个问题,并决定根据我的经验对其进行更新.事实上,现在我宁愿不建议使用额外的库.特别是如果您不是项目团队中唯一的成员......如果您在所有库中得到保证,它们会受到创建者和社区的支持,并且可以轻松集成到您的IDE中(例如,如果使用特殊语法) .你的团队中的所有人都应该知道它是如何工作的.所以现在我建议做下面的事情:

  1. 将所有JS保存在单独的文件中.尽可能地隔离它.为它提供外部API.
  2. 从您的视图中调用API函数.
  3. 将所有Razor生成的URL,文本消息,常量作为资源参数传递.

例如:

js文件:

$.api.someInitFunction = function(resources){ ... }
Run Code Online (Sandbox Code Playgroud)

视图:

<script>
    $.api.someInitFunction({
        urls: { myAction: '@Url.Action("MyAction", "MyController")' },
        messages: { error: '@errorMessage' },
        consts: { myConst: @myIntConst }
    });
</script>
Run Code Online (Sandbox Code Playgroud)

javascript asp.net-mvc partial-views razor

63
推荐指数
3
解决办法
8万
查看次数

从其他控制器渲染局部视图

有没有办法在我的控制器A视图中呈现来自其他控制器B的局部视图?

编辑:我写了一个仅适用于两个控制器的局部视图,我不想将它复制到两个Views文件夹中.
我希望每次呈现视图时都显示部分视图,而不是在发生某些事情之后.

c# asp.net-mvc partial-views razor asp.net-mvc-3

62
推荐指数
3
解决办法
9万
查看次数