我想做这样的事情:
<!--#include file="../stuff/foo/box.aspx"-->
但是在ASP.Net MVC应用程序中这样做只是感觉不对。是否有更好的方法在ASP.Net MVC项目中实现相同的目标?
答案 0 :(得分:14)
<%: Html.Partial("~/Views/foo/box.ascx") %>
或:
<% Html.RenderPartial("~/Views/foo/box.ascx"); %>
或其中最好的都使用editor template(如果此部分包含用于编辑视图模型属性的输入):
<%: Html.EditorFor(x => x.MyModelProperty) %>
或显示模板(如果此部分仅包含视图模型属性的显示):
<%: Html.DisplayFor(x => x.MyModelProperty) %>
和他们的Razor等价
@Html.Partial("~/Views/foo/box.ascx")
@{Html.RenderPartial("~/Views/foo/box.ascx");}
@Html.EditorFor(x => x.MyModelProperty)
@Html.DisplayFor(x => x.MyModelProperty)
答案 1 :(得分:2)
你应该做一个局部视图。
答案 2 :(得分:2)
您可以使用
Html.RenderPartial('~/Views/Login/Box.ascx');
RenderPartial允许使用相同的上下文呈现页面的一部分。如果要使用新上下文进行渲染,请使用
Html.RenderAction("Box","Login"); //Box - Action, Login - Controller