我正在寻找其他人通常如何组织他们的部分多态资源.
例:
我有多Image态,取决于什么imageable,我想显示略有不同的东西.
我有一个部分images/_image,可以打电话render imageable.images.我目前的心态是让我的图像部分检查是什么类型imageable,然后有另一部分,特定于该情况.我的组织将是这样的:
images/
_image.html.haml
_product.html.haml
_post.html.haml
_user.html.haml
Run Code Online (Sandbox Code Playgroud)
我的_image部分看起来像:
%div
= render :partial => "images/#{imageable.type}"
Run Code Online (Sandbox Code Playgroud)
这看起来像是一种糟糕的方法,还是采取了错误的做法?我认为render imageable.images从任何地方打电话比在render :partial => ...全场打电话要好得多.
任何想法将不胜感激.你是怎么做到的?
编辑:很长一段时间过去了,我仍然想知道是否有人对此有任何意见.抛出赏金,看看是否引起了一些注意.
在MVC 3 Beta中,模板MVC 3 Partial Page(Razor)和MVC 3 View Page with Layout(Razor)之间是否存在差异?
我在我的应用程序中添加了一个部分页面(_partialList).现在当我只返回局部视图时,它会应用_ViewStart.cshtml中的布局 - 非常像带有布局的标准视图页面.
if (Request.IsAjaxRequest())
return View("_partialList", someModelData);
Run Code Online (Sandbox Code Playgroud)
"部分"页面如何与具有布局的标准视图页面区分开来?在任何特定情况下,两者的表现会不同吗?
我的网站页面由两种内容组成.第一个是用户之间的变量,但对于所有页面都是常量.第二个是跨用户不变的,但在页面之间是可变的.这是一种常见的布局.将输出缓存应用于此类内容的最佳方法是什么?
据我了解,Html.Substitute助手与MVC2渲染管道不兼容,消除了旧的圆环缓存方式.
特异性水平会降低输出缓存的价值.同一用户不太可能在缓存输出的生命周期内多次查看同一页面.
互联网上有几次尝试,它们修改OutputCache属性并渲染子系统以支持替换.我发现的最好的就是这里.
但是,我发现的各种片段似乎都是非正式的实现,并且得不到很好的支持.另外,我倾向于怀疑如果将替换添加回MVC2管道那么容易,那就完成了.
action方法不会使用OutputCache属性进行标记,并且会返回一个包含多个Html.RenderAction调用的视图,这些调用将独立地引入缓存的内容.除了使用稍微重量级的含义之外RenderAction,它还会增加额外的间接层和代码味道.
您在MVC2中独立编写缓存内容的经历是什么?什么运作良好,什么没有?
outputcache partial-views donut-caching renderaction asp.net-mvc-2
我在一个名为的文件夹中有几个部分partials,我将它们渲染到我的视图中render 'partials/name_of_my_partial',这没关系.
无论如何,是否有可能以一种比我可以使用的方式设置东西render 'name_of_my_partial'并且rails自动检查这个partials文件夹?
现在,我有一个Missing partial错误.
我希望构建一个获取模型列并打印它的局部视图.像这样的东西:
在视图中:
@model IEnumerable<products_comparison.Models.Product>
@{
ViewBag.Title = "Index";
var Brand = (from r in Model
select r.Brand).Distinct();
}
<h2>
Index</h2>
@Html.RenderPartial("_DisplayAttribute",Brand)
Run Code Online (Sandbox Code Playgroud)
在局部视图:
<table>
<tr>
<th>
Brand
</th>
</tr>
@foreach (var row in Model)
{
<tr>
<td>
@Html.DisplayFor(r => row)
</td>
</tr>
}
</table>
Run Code Online (Sandbox Code Playgroud)
我遇到了一些问题:
谢谢!
编辑:
为了清除一件事,我希望视图将为表中的每一列调用相同的局部视图(无论如何,对于表中的大多数列),每次我将发送一个不同的列(不同的值列为精确).
假设我有一个部分视图,UserDetails其@model子句被设置为一个名为的模型类User.
现在假设我有另一个看起来像这样的模型类:
public sealed class SpecialModel
{
public User SpecialUser;
public ... // other stuff
}
Run Code Online (Sandbox Code Playgroud)
在视图中SpecialModel,我想调用上面提到的局部视图:
@model MyProject.Models.SpecialModel
@{ ViewBag.Title = "..."; }
<div class='user'>@Html.Partial("UserDetails", Model.SpecialUser)</div>
Run Code Online (Sandbox Code Playgroud)
如果用户不是null这样,这可以正常工作.但是,如果用户是null,我得到这个例外:
System.InvalidOperationException:传递到字典中的模型项的类型为"MyProject.Models.SpecialModel",但此字典需要"MyProject.Models.User"类型的模型项.
显然,异常消息是谎言.如何正确解决这个问题,以便我能null正常通过?
我正在使用asp.net mvc3和jquery对话框在主视图中打开局部视图
这是我的结构..
部分观点1
<input type="button" onclick="function1();">
Run Code Online (Sandbox Code Playgroud)
局部视图2
<form method="post">
//some elements
@Html.RenderPartial("partialview1");
</form>
Run Code Online (Sandbox Code Playgroud)
观点1
<script src="myscript.js" />
<script src="jquery.js"/>
//some element
<div>
load partialview 2 as jquery dialogue
</div>
Run Code Online (Sandbox Code Playgroud)
myscript.js
function function1()
{
//some code
}
Run Code Online (Sandbox Code Playgroud)
这只是我的应用程序的概述
现在在上面的结构,如果我点击partialview1中的按钮我收到此错误:Microsoft JScript运行时错误:找不到成员.
鉴于这一块HTML:
<div id="email_field" class="control-group">
<label class="control-label" for="account.email">Email</label>
<div id="email_input" class="controls">
<input id="account.email" name="account.email" type="text" placeholder="jpublic@example.com">
<span class="help-block">We just need a valid email address.</span>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
对于我想要的任何属性,如何将其转换为可重用的部分?IE:电子邮件,密码,密码确认等
我会假设某种视图层次结构,但我不太确定.
编辑:经过进一步的探索,我已经淘汰了{{view}},{{render}}并弄清楚我需要什么:
我想:1.使用特定的视图(InputView)2.使用特定的控制器(最好类似命名:InputController)({{view}}我认为不这样做)3.能够多次使用({{render}}不能这样做) )4.能够传入值({{render}}不能这样做)
例:
<!-- templates/application.hbs -->
{{foo "input" name="Email" id="account.email" placeholder="jpublic@email.com"}}
Run Code Online (Sandbox Code Playgroud)
// controllers/input.js
Application.InputController = Ember.ObjectController.extend({
type: "text"
});
Run Code Online (Sandbox Code Playgroud)
// views/input.js
Application.InputView = Ember.View.extend({
templateName: "form/input"
});
Run Code Online (Sandbox Code Playgroud)
<!-- templates/form/input.hbs -->
<input {{bindAttr id="id" name="name" type="type" placeholder="placeholder"}}>
Run Code Online (Sandbox Code Playgroud) 在我的asp.net MVC 4项目中,我喜欢从局部视图中保护某些内容,即当用户点击"更多详细信息"时.保存数据没问题,关闭局部视图没问题,打开局部视图不是问题,当我的模型无效时(当用户忘记标记某事时)结果是返回了我的局部视图,但不应该在视图里面.它只被视为独立页面.
视图:
@model Evaluatietool.ViewModels.EvaluatorWijzigenOPViewModel
<h3>@ViewBag.Message</h3>
@using (Html.BeginForm("ChangeEvaluator", "Ontwikkelplan"))
{
@Html.ValidationSummary(true)
@Html.HiddenFor(model => model.oldEvalAccount)
@Html.HiddenFor(model => model.selectedMedewerkerAccount)
@Html.HiddenFor(model => model.eval);
@Html.HiddenFor(model => model.countMedewerkers);
...
...
<div class="Buttons">
<input type="submit" value="Submit" />
@Ajax.ActionLink("Sluiten", "Evaluatorenlijst", new AjaxOptions { OnSuccess = "HideResultDiv" })
</div>
}
Run Code Online (Sandbox Code Playgroud)
控制器:
[HttpPost]
public ActionResult ChangeEvaluator(EvaluatorWijzigenOPViewModel ewopvm)
{
if (ModelState.IsValid)
{
if (ewopvm.selectedObjects != null)
{
ewopvm.selectedObjects.Add(ewopvm.selectedMedewerkerAccount);
}
else
{
ewopvm.selectedObjects = new List<string>();
ewopvm.selectedObjects.Add(ewopvm.selectedMedewerkerAccount);
}
Ontwikkelplannen op = new Ontwikkelplannen();
Evaluaties e = new Evaluaties();
foreach (string …Run Code Online (Sandbox Code Playgroud) asp.net asp.net-mvc asp.net-ajax partial-views asp.net-mvc-4
System.Web.HttpCompileException当我的观点呼唤时,我得到了一个Html.RederPartial.异常消息是:
附加信息:外部组件抛出异常.
我检查过:
Model由控制器传递和接收的观点是相同的.InnerException为空异常听起来应该是html或razor格式错误或不正确,但解决方案构建正常.它不久前也在工作,所以我猜,我错过了一些愚蠢的东西......
我的问题:
有谁知道如何知道导致此异常的原因?或者有没有办法获得有关异常的更多信息?
编辑:这是StackTrace
位于System.Web.Compilation.Compilation上的System.Web.Compilation.BuildProvidersCompiler.PerformBuild()的System.Web.Compilation.AssemblyBuilder.Compile(),System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath)上的System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath虚拟路径) virtualPath,Boolean noBuild,Boolean ...
partial-views ×10
asp.net-mvc ×6
razor ×3
asp.net ×1
asp.net-ajax ×1
c# ×1
ember.js ×1
javascript ×1
jquery ×1
organization ×1
outputcache ×1
renderaction ×1
reusability ×1