asp.net-mvc - ServiceStack Razor - Html.RenderAction 等效项

标签 asp.net-mvc razor servicestack

我需要像在 ASP.NET MVC 中一样使用 Html.RenderAction。

例如,我有一个包含新闻和产品的主页。

例如我想做

@Html.RenderAction("/api/products/featured")

这将启动一个新的服务调用并将模板输出到 html 流。

使用 ServiceStack Razor 是否可以实现这一点?如果可以,我该如何实现?

最佳答案

PartialExamples.cshtml测试页面显示了在页面内渲染 Razor View 的不同示例,例如:

使用新的 RenderToAction() 方法,该方法允许您执行服务,并使用路由和查询字符串呈现部分 View ,例如:

@Html.RenderAction("/products/1")

如果您想要与默认 View 不同的 View ,这还需要一个可选的 View 名称:

@Html.RenderAction("/products/1", "CustomProductView")

还有普通的 Html.Partial() 来指定要在页面中呈现的 View 和模型,例如:

@Html.Partial("GetProduct", 
    base.ExecuteService<ProductService>(s => s.Any(new GetProduct { Id = 1 })))

ExecuteService 只是 using 语句中等效 ResolveService 的包装,即:

@{
   Response response = null;
   using (var service = base.ResolveService<ProductService>())
   {
       response = service.Any(new GetProduct { Id = 1 });
   }
}
@Html.Partial("GetProduct", response)

Razor Views 中的新 RenderToAction() 方法已在 v4.0.34+ 中添加,现在为 available on MyGet .

关于asp.net-mvc - ServiceStack Razor - Html.RenderAction 等效项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15028447/

相关文章:

c# - 通过属性在 MVC4 中格式化 DateTime

Razor 内联转换不起作用 - 需要正确的语法

asp.net-mvc - ASP.NET MVC Razor 内容占位符

c# - ServiceStack.Text 中的数组反序列化不正确

asp.net-mvc - 小时总数 (HH :MM) in Linq

c# - 如何在删除中间项目时绑定(bind) ASP.NET MVC 中的对象列表

.net - T4MVC 错误 - T4 文件被阻止或位于不受信任的区域

jquery - 使用 jQuery 在 ASP.NET MVC 3 中使用 BeginCollectionItem 动态添加行到 html 表时的行和列对齐

升级后 ServiceStack ORMLite 编码问题

c# - 为什么我的 ServiceStack 服务会抛出异常?