我希望应用程序中的特定页面具有不同的布局,而所有其他页面将具有几乎相同的布局。但是,application.html.erb 文件是为应用程序中的所有页面呈现的。如何不对特定页面使用 application.html.erb 文件?
导轨版本:3.2.1
web-applications ruby-on-rails partial-views ruby-on-rails-3
你知道为什么{{ project.title }}在我看到范围的真正价值之前.
那怎么解决?
编辑: <title>{{ pageTitle }}</title>
页面正在加载

页面完全加载

我正在开发2个MVC5网站。它们分别运行,但实际上彼此相关(1个管理站点和1个用户站点)。在这两个站点中,我都必须使用HTML表渲染图形板。我将PartialView与Model一起使用。
目前,这是我的解决方案结构:
Project.Common(一个类库项目,包含模型)
Project.Admin(管理站点的MVC5项目),请参阅Project.Common。
Project.User(用于User站点的MVC5项目),请参阅Project.Common。
为了渲染图形板,我将使用BoardDataProject.Common中的类,这是可以的。但是使用当前的解决方案结构,我必须在每个MVC5项目中创建2个PartialView,以后可能很难维护。
请为重用PartialView提供一个好的解决方案。我已经知道我可以编写Helper,但是那样,我必须在C#代码中编写HTML代码,这不是很好。在Razor View中有什么方法可以做到这一点?
我有以下几点:
/controllers/test_controller.rb
/views/test/index.html.erb
/views/test/_partial.html.erb
我想在索引视图中呈现部分。我这样做:
index.html.erb
<h1>Test#index</h1>
<%= render "_partial" %>
Run Code Online (Sandbox Code Playgroud)
_partial.html.erb
<p>This is partial content</p>
Run Code Online (Sandbox Code Playgroud)
当我转到 localhost:3000/test/index 时,出现此错误:
ActionView::MissingTemplate in Test#index
Missing partial /__partial with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :coffee, :jbuilder]}.
Extracted source (around line #2):
1 <h1>Test#index</h1>
2 <%= render "_partial" %>
Run Code Online (Sandbox Code Playgroud)
知道我做错了什么吗?
我的整个网站是一个 Ajax 网站,因此我的所有视图(布局除外)都可以正常加载或通过 ajax 操作链接加载。如果我将 Javascipt 文件与部分视图一起放入,那么所有代码都会按预期工作,但脚本会被多次加载(从而使用户下载更多脚本,所有脚本也不会由于某种原因被缓存)。
如果我将脚本文件放入布局中,那么它们只会加载一次,但是如果加载了部分视图,则该部分视图的 JS 代码显然不起作用,因为当部分视图未加载时脚本已经加载呈现。
我的问题是,如何使脚本仅加载一次,但又以某种方式让它们影响部分视图?
索引视图:
<script src="/Scripts/Build/module.min.js"></script>
<script src="/Scripts/Build/upload-index.min.js"></script>
Run Code Online (Sandbox Code Playgroud)
布局:
<li>
@Ajax.ActionLink("Upload", "Index", "Upload", new {Area = "Music"}, new AjaxOptions {HttpMethod = "GET", UpdateTargetId = "body-wrapper", InsertionMode = InsertionMode.Replace, OnSuccess = "updateHistory", AllowCache = true }, new {@class = "nav-link"})
</li>
Run Code Online (Sandbox Code Playgroud)
是否可以访问放置在外部文件夹中的部分视图?
我想在页面/ Home/Index上显示_LoginPartial,但_LoginPartial应该在/ Auth中.
当我试图指定/ Home/Index从/ Auth中获取此部分时,我收到错误.
@Html.Partial("/Auth/Login")
Run Code Online (Sandbox Code Playgroud)
ErrorLog说的
消息=未找到部分视图"Views/Auth/Login"或视图引擎不支持搜索的位置.搜索了以下位置:
〜/查看/主页/认证/的Login.aspx
〜/查看/主页/认证/ Login.ascx
〜/查看/共享/认证/的Login.aspx
〜/查看/共享/认证/ Login.ascx
〜/查看/主页/认证/ Login.cshtml
〜/查看/主页/认证/ Login.vbhtml
〜/查看/共享/认证/ Login.cshtml
〜/查看/共享/认证/ Login.vbhtml
所以我知道它正在尝试找到我的部分内部/主目录.
我有需要输入数据和提交表单的页面。页面应该通过ajax动态加载partialView。我拥有的:
搜索数据模型:
public class SearchData
{
public SearchData()
{
documents = GetDocuments();
data = new List<DisplayData>();
}
public bool isAdmin { get; set; }
public string emc { get; set; }
public string receiver { get; set; }
public DateTime receiveDateFrom { get; set; }
public DateTime receiveDateTo { get; set; }
public int document { get; set; }
public List<SelectListItem> documents { get; set; }
public IEnumerable<DisplayData> data { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
以上DisplayData是我的局部 View 的模型Show …
我是 ASP.NET Core 的新手。我刚刚发现了 TagHelpers ,正如我可能明白的那样,理论上我们应该能够用tag helpers替换部分视图。
除此之外,TagHelper可以接受输入但PartialView不接受。
我觉得对吗?还是误会?任何人都可以清楚地解释其中的区别吗?
提前致谢!
在我的ASP MVC3视图中,我使用以下Ajax调用来检索局部视图并将部分视图附加到特定视图 fieldset
阿贾克斯
$("#addItem").click(function () {
alert("here");
$.ajax({
url: '@Url.Action("BlankDropDownItem", "DropDownValues")',
dataType: 'html',
cache: false,
success: function (html) {
alert(html);
$("#items").append(html);
}
});
return false;
});
Run Code Online (Sandbox Code Playgroud)
这个Ajax调用一个非常简单的ViewResult控制器方法,它应该返回局部视图.
调节器
public ViewResult BlankDropDownItem()
{
return View("DropDownItemPartial", new DropDownValues());
}
Run Code Online (Sandbox Code Playgroud)
这是部分中的所有代码.当我在VS 2010中创建它时(我现在已经完成了两次以确保这一点)我选中了"部分视图"复选框,该复选框灰显了"使用共享布局"选项.
局部视图
@model Monet.Models.DropDownValues
<div class="editor-label">
@Html.LabelFor(model => model.AllowedValue)
</div>
<div class="label-field">
@Html.EditorFor(model => model.AllowedValue)
@Html.ValidationMessageFor(model => model.AllowedValue)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.DisplayValue)
</div>
<div class="label-field">
@Html.EditorFor(model => model.DisplayValue)
@Html.ValidationMessageFor(model => model.DisplayValue)
</div>
Run Code Online (Sandbox Code Playgroud)
无论出于何种原因,当我把一个alert在上html对象在此行中的Ajax的返回 …
我有一个母版页,其中3个局部视图渲染,它包含一个渲染体(内容占位符)的视图.
我试图将数据(任何字符串)从我的子视图传递到母版页上呈现的部分视图之一.为此,我正在使用,Viewbag但它不能访问父视图.
我的代码如下:
我的主页:[ Main_Layout.chtml]
<body>
<div>
@{Html.RenderAction("Header_PartialView", "Home");}
</div>
<div>
<table cellpadding="0" cellspacing="0" width="100%">
<tr valign="top">
<td id="tdLeft" class="lftPanel_Con">
<div>
@{Html.RenderAction("LeftPanel_PartialView", "Home");}
</div>
</td>
<td id="tdRight" width="100%">
<div>
@RenderBody()
</div>
</td>
</tr>
</table>
</div>
<!--start footer-->
<div>
@{Html.RenderAction("Footer_PartialView", "Home");}
</div>
</body>
Run Code Online (Sandbox Code Playgroud)
我的孩子观点:[ TestPage1.chtml]
@{
ViewBag.Title = "TestPage1";
Layout = "~/Views/Shared/Main_LayoutPage.cshtml";
var test1 = ViewBag.testData1;
var test2 = ViewData["testData2"];
}
<h2>TestPage1</h2>
<div>This is only for testing</div>
Run Code Online (Sandbox Code Playgroud)
我的控制器代码:
public ViewResult TestPage1()
{
ViewBag.testData1 = "My first view …Run Code Online (Sandbox Code Playgroud) partial-views ×10
asp.net-mvc ×4
ajax ×3
jquery ×2
angularjs ×1
asp.net ×1
asp.net-core ×1
c# ×1
tag-helpers ×1