在MVC中'#include文件'的正确方法是什么?

时间:2011-02-16 20:30:21

标签: asp.net-mvc

我想做这样的事情:

<!--#include file="../stuff/foo/box.aspx"-->

但是在ASP.Net MVC应用程序中这样做只是感觉不对。是否有更好的方法在ASP.Net MVC项目中实现相同的目标?

3 个答案:

答案 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