标签: partial-views

Node.js + Express + Handlebars.js +部分视图

我正在尝试使用Handlebars.js作为服务器模板引擎,使用Node.js | Express创建一个简单的HelloWorld项目.

问题是我找不到任何使用这种链的例子,尤其是多视图.

例如,我想定义标题视图:

<header>
  <span>Hello: {{username}}</span>
</header>
Run Code Online (Sandbox Code Playgroud)

并在每个页面中使用它与其他视图.

也许我正在以错误的方式思考这些观点,我认为该观点是一种控制,我可以在任何其他视图中的任何页面上重用.

我感谢任何链接到教程或(更好)我可以从中学习的开源项目.

partial-views node.js express handlebars.js

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

使用自定义VirtualPathProvider加载嵌入式资源部分视图

我编写了自定义VirtualFile和VirtualPathProvider实现,这些实现成功获取了部分视图的嵌入式资源.

但是,当我尝试渲染它们时会产生此错误:

The view at '~/Succeed.Web/Succeed.Web.Controls.SImporter._SImporter.cshtml' must derive from WebViewPage, or WebViewPage<TModel>.

渲染局部视图时,在常规视图内部,它看起来如下所示:

Html.RenderPartial("~/Succeed.Web/Succeed.Web.Controls.SImporter._SImporter.cshtml");
Run Code Online (Sandbox Code Playgroud)

是什么让它相信这不是局部观点?

编辑:我为虚拟文件和虚拟文件提供程序实现发布了我的代码,任何人偶然发现这个寻找解决方案来获得该组件的工作.这个问题也适用于基于问题标题的人.

ere是VirtualFile实现以供参考:

public class SVirtualFile : VirtualFile
{
    private string m_path;

    public SVirtualFile(string virtualPath)
        : base(virtualPath)
    {
        m_path = VirtualPathUtility.ToAppRelative(virtualPath);
    }

    public override System.IO.Stream Open()
    {
        var parts = m_path.Split('/');
        var assemblyName = parts[1];
        var resourceName = parts[2];

        assemblyName = Path.Combine(HttpRuntime.BinDirectory, assemblyName);
        var assembly = System.Reflection.Assembly.LoadFile(assemblyName + ".dll");

        if (assembly != null)
        {
            return assembly.GetManifestResourceStream(resourceName);
        }
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

的VirtualPathProvider:

public class SVirtualPathProvider : …
Run Code Online (Sandbox Code Playgroud)

virtualpathprovider partial-views embedded-resource asp.net-mvc-3

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

发布包含多个部分视图的表单

我目前正在尝试发布一个由两个强类型视图组成的表单.这个问题很相似,但没有答案:

具有多个强类型部分视图的MVC 3剃刀形式的帖子没有绑定

当我提交表单时,提交给控制器的模型始终为null.我花了几个小时试图让它发挥作用.这似乎应该很简单.我在这里错过了什么吗?我不需要做ajax只需要能够发布到控制器并呈现一个新页面.

谢谢

这是我的观看代码:

<div>
    @using (Html.BeginForm("TransactionReport", "Reports", FormMethod.Post, new {id="report_request"}))
    {
        ViewContext.FormContext.ValidationSummaryId = "valSumId";
        @Html.ValidationSummary(false, "Please fix these error(s) and try again.", new Dictionary<string, object> { { "id", "valSumId" } });
        @Html.Partial("_ReportOptions", Model.ReportOptions);
        @Html.Partial("_TransactionSearchFields", new ViewDataDictionary(viewData) { Model = Model.SearchCriteria });
    }
Run Code Online (Sandbox Code Playgroud)

这是控制器中的代码:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult TransactionReport(TransactionReportRequest reportRequest)
{
    var reportInfo = new List<TransactionReportItem>();

    if (ModelState.IsValid)
    {
        var reportData = _reportDataService.GetReportData(Search.MapToDomainSearchCriteria(reportRequest.SearchCriteria));
        if (reportData!=null)
        {
            reportInfo = reportData.ToList();
        }
        return View(reportInfo);
    }
    return View(reportInfo);
}
Run Code Online (Sandbox Code Playgroud)

部分视图本身非常无关紧要,因为他们正在做的就是参与并展示他们的模型.

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

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

将MVC PartialView渲染为SignalR响应

我想将PartialView呈现为HTML字符串,以便将其返回到SignalR ajax请求.

就像是:

SignalR Hub(mySignalHub.cs)

public class mySignalRHub: Hub
{
    public string getTableHTML()
    {
        return PartialView("_MyTablePartialView", GetDataItems()) // *How is it possible to do this*
    }
}
Run Code Online (Sandbox Code Playgroud)

Razor PartialView(_MyTablePartialView.cshtml)

@model IEnumerable<DataItem>

<table>
    <tbody>
        @foreach (var dataItem in Model)
        {
        <tr>
            <td>@dataItem.Value1</td>
            <td>@dataItem.Value2</td>
        </tr>
        }
    </tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

HTML(MySignalRWebPage.html)

<Script>
    ...      
    //Get HTML from SignalR function call
    var tableHtml = $.connection.mySignalRHub.getTableHTML();

    //Inject into div
    $('#tableContainer).html(tableHtml);
</Script>

<div id="tableContainer"></div>
Run Code Online (Sandbox Code Playgroud)

我的问题是我似乎无法在Controller之外渲染PartialView.甚至可以在Controller外部渲染PartialView吗?能够利用Razor附带的令人敬畏的HTML生成能力将是非常好的.

我错了吗?还有另外一种方法吗?

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

33
推荐指数
2
解决办法
8397
查看次数

你能更新局部视图而不是整页帖子吗?

有没有办法在asp.net mvc中提交部分视图表单而无需重新加载父页面,但是只将部分视图重新加载到新状态?与knockout.js如何使用data-bind更新类似.

我的数据表使用可变数量的列/名称进行渲染,所以我不认为knockout.js是这个的选项,所以我试图使用局部视图.

asp.net-mvc jquery partial-views knockout.js

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

如何将模型传递给局部视图

我有两个视图模型:

public class ParentViewModel
    {
        public Id { get; set; }
        .....
        public ChildViewModel Child{ get; set; }
    }

public class ChildViewModel
    {
        public ChildId { get; set; }
        .....
    }
Run Code Online (Sandbox Code Playgroud)

控制器:

    public ActionResult Index()
        {
            .... <some code>
            return View("NewIndex", ParentViewModel);
        }

    [HttpPost]
    public ActionResult PartialAction(ChildViewModel childView)
    {
        return RedirectToAction("Index");
    }
Run Code Online (Sandbox Code Playgroud)

和观点:指数

@model ParentViewModel
....
@Html.Partial("_Partial", Model.Child)
Run Code Online (Sandbox Code Playgroud)

和_Partial

@model ChildViewModel
... do some stuff with child model
Run Code Online (Sandbox Code Playgroud)

当我试图打开索引页面时,我遇到了错误:

传递到字典中的模型项的类型为"ParentViewModel",但此字典需要"ChildViewModel"类型的模型项.

为什么它尝试传递ParentViewModel而不是ChildViewModel.我做错了什么?

asp.net-mvc partial-views asp.net-mvc-viewmodel

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

在Haml中与当地人一起渲染?

我正在学习哈姆尔.

我的视图文件如下:

show.html.haml:

.content
  = render 'meeting_info', :locals => { :info => @info }
Run Code Online (Sandbox Code Playgroud)

和_meeting_info.html.haml:

.detail
  %table
    %caption
      Meeting Informations of
      = info["meeting_name"]
...
Run Code Online (Sandbox Code Playgroud)

当我尝试运行时,我收到了一个undefined local variable or method 'info'错误.

haml ruby-on-rails partial-views

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

MVC 4 - 如何将模型数据传递给局部视图?

我正在构建一个配置文件页面,其中包含许多与特定模型(租户)相关的部分 - AboutMe,MyPreferences - 这些事情.这些部分中的每一部分都将是部分视图,以允许使用AJAX进行部分页面更新.

当我点击ActionResultTenantController中的一个时,我能够创建一个强类型视图,并将模型数据传递给视图.部分观点无法实现这一点.

我创建了一个局部视图_TenantDetailsPartial:

@model LetLord.Models.Tenant
<div class="row-fluid">
    @Html.LabelFor(x => x.UserName) // this displays UserName when not in IF
    @Html.DisplayFor(x => x.UserName) // this displays nothing
</div>
Run Code Online (Sandbox Code Playgroud)

然后我有一个视图MyProfile,将呈现提到的部分视图:

@model LetLord.Models.Tenant
<div class="row-fluid">
    <div class="span4 well-border">
         @Html.Partial("~/Views/Tenants/_TenantDetailsPartial.cshtml", 
         new ViewDataDictionary<LetLord.Models.Tenant>())
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

如果我将代码包装在DIV _TenantDetailsPartial里面@if(model != null){},那么页面上就不会显示任何内容,所以我猜测有一个空模型被传递给视图.

为什么我ActionResult在'session'中创建一个来自用户的强类型视图会被传递给视图?如何将'session'中的用户传递给不是从ActionResult?创建的局部视图?如果我遗漏了这个概念,请解释一下.

c# asp.net-mvc model partial-views asp.net-mvc-views

32
推荐指数
4
解决办法
10万
查看次数

ASP.NET MVC - 将Json结果与ViewResult结合使用

我可以返回包含渲染视图的Json结果吗?

我需要它来返回提交表单的新ID以及HTML和其他一些属性.

当我需要从Json对象中的一个动作返回两个(或更多)视图结果时,这也很有用.

谢谢!

asp.net-mvc json partial-views

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

如何在ASP.NET MVC3中包含部分视图中的JavaScript

我希望能够为部分视图提供一种在视图底部包含JavaScript代码/文件的方法.这将使部分视图包含它们所依赖的任何JavaScript文件.例如,如果我想编写需要创建JQueryUI对话框的部分,我想导入JQueryUI JavaScript文件以及添加呈现对话框的JavaScript代码.

我目前正在父视图中编写此代码,这使得使用局部视图毫无意义.

我知道RenderPartial多次调用会导致脚本被多次包含.一旦我知道如何从局部视图中将JavaScript实际包含到主视图中,这是一个可解决的问题.

javascript asp.net-mvc renderpartial partial-views asp.net-mvc-3

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