标签: partial-views

组织多态资源的部分

我正在寻找其他人通常如何组织他们的部分多态资源.

例:

我有多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 => ...全场打电话要好得多.

任何想法将不胜感激.你是怎么做到的?

编辑:很长一段时间过去了,我仍然想知道是否有人对此有任何意见.抛出赏金,看看是否引起了一些注意.

ruby-on-rails partial-views organization

9
推荐指数
1
解决办法
982
查看次数

MVC 3部分页面(Razor)和MVC 3视图页面与布局(Razor)之间的区别?

在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)

"部分"页面如何与具有布局的标准视图页面区分开来?在任何特定情况下,两者的表现会不同吗?

asp.net-mvc partial-views razor

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

ASP MVC2中部分缓存的当前做法是什么?

我的网站页面由两种内容组成.第一个是用户之间的变量,但对于所有页面都是常量.第二个是跨用户不变的,但在页面之间是可变的.这是一种常见的布局.将输出缓存应用于此类内容的最佳方法是什么?

据我了解,Html.Substitute助手与MVC2渲染管道不兼容,消除了旧的圆环缓存方式.

对每个页面使用VaryByParam ="user"的正常输出缓存?

特异性水平会降低输出缓存的价值.同一用户不太可能在缓存输出的生命周期内多次查看同一页面.

使用备用OutputCache子系统

互联网上有几次尝试,它们修改OutputCache属性并渲染子系统以支持替换.我发现的最好的就是这里.

但是,我发现的各种片段似乎都是非正式的实现,并且得不到很好的支持.另外,我倾向于怀疑如果将替换添加回MVC2管道那么容易,那就完成了.

从几个单独缓存的子操作中编写最终页面

action方法不会使用OutputCache属性进行标记,并且会返回一个包含多个Html.RenderAction调用的视图,这些调用将独立地引入缓存的内容.除了使用稍微重量级的含义之外RenderAction,它还会增加额外的间接层和代码味道.

您在MVC2中独立编写缓存内容的经历是什么?什么运作良好,什么没有?

outputcache partial-views donut-caching renderaction asp.net-mvc-2

8
推荐指数
1
解决办法
802
查看次数

有没有办法将自定义文件夹添加到"部分路径"?

我在一个名为的文件夹中有几个部分partials,我将它们渲染到我的视图中render 'partials/name_of_my_partial',这没关系.

无论如何,是否有可能以一种比我可以使用的方式设置东西render 'name_of_my_partial'并且rails自动检查这个partials文件夹?

现在,我有一个Missing partial错误.

ruby-on-rails partial-views

8
推荐指数
1
解决办法
2420
查看次数

asp.net mvc - 将部分数据模型传递给局部视图

我希望构建一个获取模型列并打印它的局部视图.像这样的东西:

在视图中:

@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)

我遇到了一些问题:

  1. 编译器不允许我将Barnd发送到局部视图.
  2. 如果您查看部分视图代码,您将看到Brand这个词,它是列名.我不希望在局部视图中硬编码"Brand"这个词,而是我喜欢列名称将在那里.
  3. 在局部视图中我需要放置@model products_comparison.Models.Product,但我不想发送孔表.我只想发一个专栏 - 但我不知道该放什么..

谢谢!

编辑:

为了清除一件事,我希望视图将为表中的每一列调用相同的局部视图(无论如何,对于表中的大多数列),每次我将发送一个不同的列(不同的值列为精确).

asp.net-mvc partial-views ado.net-entity-data-model razor

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

如何为其模型调用"null"的部分视图?

假设我有一个部分视图,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-mvc partial-views asp.net-mvc-3

8
推荐指数
1
解决办法
4873
查看次数

Microsoft JScript运行时错误:找不到成员

我正在使用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运行时错误:找不到成员.

javascript asp.net-mvc jquery partial-views jquery-dialog

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

如何在ember.js中为重复标记创建可重用的部分?

鉴于这一块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)

partial-views reusability ember.js

8
推荐指数
1
解决办法
2644
查看次数

当model无效时,返回视图内的部分视图,并显示错误消息

在我的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

8
推荐指数
1
解决办法
7623
查看次数

Html.RenderPartial上的MVC System.Web.HttpCompileException

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

c# asp.net-mvc partial-views razor

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