Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc ServiceStack Razor-Html.RenderAction等效项_Asp.net Mvc_Razor_<img Src="//i.stack.imgur.com/WM7S8.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">servicestack - Fatal编程技术网 servicestack,Asp.net Mvc,Razor,servicestack" /> servicestack,Asp.net Mvc,Razor,servicestack" />

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

Asp.net mvc ServiceStack Razor-Html.RenderAction等效项,asp.net-mvc,razor,servicestack,Asp.net Mvc,Razor,servicestack,我需要像在ASP.NET MVC中一样使用Html.RenderAction 例如,我有一个主页,上面有新闻和产品 我想做个例子 @Html.RenderAction("/api/products/featured") 它将启动一个新的服务调用并将模板输出到html流 使用ServiceStack Razor是否可能做到这一点?如果可能,我该如何实现它?*我可能重复了我的答案,或者不知何故丢失了答案 查看ServiceStack.Razor.ViewPage类,有一个ServiceStack.

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

例如,我有一个主页,上面有新闻和产品

我想做个例子

@Html.RenderAction("/api/products/featured")
它将启动一个新的服务调用并将模板输出到html流


使用ServiceStack Razor是否可能做到这一点?如果可能,我该如何实现它?

*我可能重复了我的答案,或者不知何故丢失了答案

查看ServiceStack.Razor.ViewPage类,有一个ServiceStack.Html.HtmlHelper类型的Html属性。我不认为“RenderAction”是这个类上的方法(或扩展方法),所以它看起来不可用。有一个采用ViewName的“Partial”方法和一个采用ViewName和对象的重载。根据您的上述评论,这似乎不是一个有用的解决方案

如果我对上述内容的理解是正确的,我认为您需要“特色视图模板”来获取数据。可以加上这样的东西吗

    { FeaturedResponse products = new JsonServiceClient("http://localhost").Get<FeaturedResponse>("/api/products/featured"); }
{FeaturedResponse products=new JsonServiceClient(“http://localhost获取(“/api/products/featured”);}
到您的模板。这将允许您像使用模型一样使用products变量

或者,使用JavaScript将数据拉入模板。不过,您必须使用JavaScript将数据输入HTML元素

然后可以使用@Html.Partial('Featured')呈现模板


希望这能有所帮助。

*我可能是在重复我的答案,或者不知怎么弄丢了

查看ServiceStack.Razor.ViewPage类,有一个ServiceStack.Html.HtmlHelper类型的Html属性。我不认为“RenderAction”是这个类上的方法(或扩展方法),所以它看起来不可用。有一个采用ViewName的“Partial”方法和一个采用ViewName和对象的重载。根据您的上述评论,这似乎不是一个有用的解决方案

如果我对上述内容的理解是正确的,我认为您需要“特色视图模板”来获取数据。可以加上这样的东西吗

    { FeaturedResponse products = new JsonServiceClient("http://localhost").Get<FeaturedResponse>("/api/products/featured"); }
{FeaturedResponse products=new JsonServiceClient(“http://localhost获取(“/api/products/featured”);}
到您的模板。这将允许您像使用模型一样使用products变量

或者,使用JavaScript将数据拉入模板。不过,您必须使用JavaScript将数据输入HTML元素

然后可以使用@Html.Partial('Featured')呈现模板

希望这有帮助。

测试页面显示了在页面内呈现razor视图的不同示例,例如:

@Html.Partial("GetProduct", 
    base.ExecuteService<ProductService>(s => s.Any(new GetProduct { Id = 1 })))
使用新的
renderAction()
方法,可以执行服务,并使用路由和查询字符串呈现部分视图,例如:

@Html.RenderAction("/products/1")
如果您希望使用不同于默认视图的视图,则还可以使用可选视图名称:

@Html.RenderAction("/products/1", "CustomProductView")
还有普通的
Html.Partial()
来指定要在页面中呈现的视图和模型,例如:

@Html.Partial("GetProduct", 
    base.ExecuteService<ProductService>(s => s.Any(new GetProduct { Id = 1 })))
Razor视图中新的
renderAction()
方法是在v4.0.34+中添加的,现在是。

测试页面显示了在页面中呈现Razor视图的不同示例,例如:

@Html.Partial("GetProduct", 
    base.ExecuteService<ProductService>(s => s.Any(new GetProduct { Id = 1 })))
使用新的
renderAction()
方法,可以执行服务,并使用路由和查询字符串呈现部分视图,例如:

@Html.RenderAction("/products/1")
如果您希望使用不同于默认视图的视图,则还可以使用可选视图名称:

@Html.RenderAction("/products/1", "CustomProductView")
还有普通的
Html.Partial()
来指定要在页面中呈现的视图和模型,例如:

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

Razor视图中新的
renderAction()
方法是在v4.0.34+中添加的,现在是。

如果您能够在“父”视图中获得特色产品,您可以尝试类似@Html.RenderPage(“FeatureProducts.cshtml”,FeaturedProductsModel)的方法我意识到使用RenderAction的全部目的是为了消除对产品检索方式的依赖。如果您能够在“父”视图中获取特色产品,您可以尝试类似@Html.RenderPage(“FeatureProducts.cshtml”,FeaturedProductsModel)的方法我意识到使用RenderAction的全部目的是为了消除对产品检索方式的依赖。此附加功能现在满足我的问题要求。此附加功能现在满足我的问题要求。