我有一个侧边栏,里面会有一些逻辑,类似于视图与控制器的对话方式.我在哪里把逻辑放入部分?我是否为布局创建了一个新控制器并将其放入其中?
该布局适用于登录用户,如仪表板.仪表板将有一个侧边栏,在每个页面上显示相同的动态内容.由于它显示在每个页面上,我想把它放在一个部分.
我只是把发现和所有信息放在哪里感到困惑.
我已经浏览了样本asp.net mvc书呆子晚餐应用程序...但仍然无法理解我应该去何时何地寻求部分观点?
注意:看到一个部分视图在行动中会有所帮助......任何样本......
我有一个局部视图,我想使用jquery在主视图中呈现它.
以下是我编写jQuery的方法:
$(document).ready(function() {
$("#dvGames").load("/LiveGame/Partial3");
});
Run Code Online (Sandbox Code Playgroud)
控制器方法如下所示:
public ActionResult Partial3(DateTime gameDate)
{
return View("Partial3");
}
Run Code Online (Sandbox Code Playgroud)
我没有看到任何东西.我试过了
<% Html.RenderPartial("Partial3"); %>
Run Code Online (Sandbox Code Playgroud)
它工作但我想在局部视图中过滤数据,所以我使用jquery加载方法.
我在一个视图中渲染部分:
<%= render 'video', :video => @video, :video_id => 'video_show_id' %>
Run Code Online (Sandbox Code Playgroud)
并将此代码部分包含在内:
<% if video_id %>
<%= link_to "video", video.video_url, :class => "oembed", :id => video_id %>
<% else %>
<%= link_to "video", video.video_url, :class => "oembed" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
问题是这个部分会在我的应用程序中的许多地方呈现,而在其他视图中我不想传递:video_id给部分.因此我的应用程序抛出一个video_id未定义的错误.我可以:video_id => ""在其他视图中传入partial,但由于部分在很多地方呈现,这是一种痛苦.有没有更简单的方法来处理这个?
我有一个PartialViewResult操作,它呈现我从页面上的$ .ajax调用调用的PartialView.
PartialView还有一个用于VM中项目的foreach循环,在该PartialView中我有两个渲染另外两个Partial的RenderAction.
一切正常,除了它渲染的速度.当我注释掉两个嵌套的RenderAction时,主要的局部视图渲染速度非常快.当我取消注释它们时,主要局部视图呈现3到5秒.即使我从部分视图中删除所有数据并且从操作中删除所有数据只返回空视图,它仍然需要3-5秒.
不知何故,我的应用程序在呈现这两个部分时遇到问题,即使它们是空的.
我的代码:主要行动:
public PartialViewResult MyTasks(int milestoneId, int currentPage = 1)
{
var mergedTasks = new List<MergedTask>();
var TrackingTeams = _TrackingTeams.GetAll().ToList();
var pagingInfo = new PagingInfo() {CurrentPage = currentPage, ItemsPerPage = 10, TotalItems = _TrackingTeams.GetAll().Count() };
mergedTasks.AddRange(from TrackingTeam in TrackingTeams
let task = allTasks.Single(x=>x.TestId == (int)TrackingTeam.TrackingTask.TestId)
select new MergedTask()
{
Summary = TrackingTeam.TrackingTask.Description,
InternalId = task.Id,
DevTrackingTask = TrackingTeam.TrackingTask,
LastUpdate = task.DateModified
});
return PartialView(new DevTrackingTaskViewModel
{
MergedTasks = mergedTasks,
Category = _categories.GetById(categoryId),
PagingInfo = pagingInfo
}); …Run Code Online (Sandbox Code Playgroud) 在我的App_code,我有一个叫做辅助函数FormatTelephone(string number)在Formatter.cshtml.我尝试在局部视图中访问它@Formatter.FormatTelephone(number).当我测试它时,它说
编译器错误消息:CS0103:当前上下文中不存在名称"Formatter"
可能的原因是什么?谢谢!
一方面,我有一个可安装的引擎,假设 Front Front 包含我的资产和几页它与 MainApp 隔离。我不希望它触及主应用程序。
另一方面,我希望我的 MainApp 使用布局和部分 Front。所以我这样设置布局:
class ApplicationController < ActionController::Base
layout 'front/application'
end
Run Code Online (Sandbox Code Playgroud)
但是前端/应用直接引用引擎部分,因为隔离,像这样
render 'header' # front/ prefix is not required
Run Code Online (Sandbox Code Playgroud)
所以 MainApp 视图尝试加载 app/views/application/header 而不是 app/views/front/application/header
为了解决这个问题,我像这样放置了一个 prepend_view_path :
class ApplicationController < ActionController::Base
layout 'front/application'
before_filter :prepend_front
protected
def prepend_front
prepend_view_path "app/views/front"
end
end
Run Code Online (Sandbox Code Playgroud)
但这不起作用,因为引擎路径指向供应商。引擎将它自己添加到 prepend 路径列表中:~/main_app/vendor/private_gems/front-0.0.2/app/views 而我的 prepred_front 方法创建了这个:~/main_app/app/views/front
我试图强行添加正确的路径(但它看起来很脏):
prepend_view_path "#{Rails.root}/vendor/private_gems/front-0.0.2/app/views/front"
Run Code Online (Sandbox Code Playgroud)
我不工作,只是使应用程序崩溃...
而我被困在这里。也许我的设计是错误的?
让我们考虑两个使用相同布局的视图:
而不是两次定义正确的部分,我想知道我是否可以创建一个PartialView直接从布局页面链接.
问题是部分视图从正在呈现的视图中隐含地继承了它们的模型.由于每个视图都有自己的模型,因此我在局部视图中最终会出现模型类型不匹配的情况.
从这里我看到两个解决方案:
所以这里是问题:
非常感谢,TB.
我写了一些我想在几个模块中使用的部分.我认为最好的方法是将它放入我的自定义库中.
但不幸的是,我无法找到一种方法来包含这个部分而不使用非常丑陋的路径,如:
echo $this->partial('/../../../../vendor/myvendor/library/MyVendor/View/Views/FormPartial.phtml'
, array(...));
Run Code Online (Sandbox Code Playgroud)
有什么想法如何从我的视图链接到我的供应商目录?
创建我的第一个AngularJS应用程序.
一个ng-repeat:er加载标题.每个标题都是可点击的.单击标题时,ajax调用会获得更多JSON数据.我需要在点击的标题下面添加这些数据.
通常的方式,我会将HTML创建为字符串并将其附加到源代码中.但是因为我正在使用AngularJS,所以应该有一种方法可以创建一个包含HTML和另一个ng-repeat的局部视图.
如何才能做到这一点?
partial-views ×10
asp.net-mvc ×4
c# ×2
layout ×2
view-helpers ×2
angularjs ×1
asp.net ×1
jquery ×1
partial ×1
performance ×1
php ×1
prepend ×1
razor ×1
ruby ×1
viewbag ×1
zend-view ×1