html.labelfor、textboxfor等,是按照label或textbox的方式输出模式
html.editorfor是使用指定的Model输出视图
此外,还有一个html.displayfor跟html.editorfor类似。
editorfor在输出数据的时候,如果不能满足其特殊需求,会使用TextboxFor来达成目的。
那么editorfor的特殊需求是什么呢?
1、editorfor会默认从shared\editortemplates文件夹里找Model类型名对应的视图文件。
2、可以对editorfor指定模板视图的文件名,如你的代码中的BasicCoreInfomationViewModel
至于DISPLAYFOR,默认的视图文件夹为displaytemplates
如果你的partial(本例中也就是Header.ascx)是在当前请求的controller下(也就是位于目录/Views/nameController下)或共享目录下(也就是/Views/Shared下),那么你只要把后缀.ascx去掉就行了,也就是把你的第26行换成<% Html.RenderPartial("Header.ascx")%>。如果你的partial位于其它位置,那么你需要引用全虚拟目录,目录依你项目而定,形式如下:
<%: Html.Partial("~/Views/Shared/Partials/MyOtherPartial.ascx") %>
注意,这个时候需要.ascx后缀。
如果不明白的话,请补充问题,希望我能帮到你。
如果这对你有帮助话,请将此标为最佳答案,谢谢。
Html.RenderPartial与Html.RenderAction这两个方法都是用来在界面上嵌入用户控件的。Html.RenderPartial是直接将用户控件嵌入到界面上:
<%Html.RenderPartial("LogOnUserControl")%>
或
<%Html.RenderPartial("~/Areas/Comm/Views/Shared/LogOnUserControl.ascx")%>
注意:用第一种方法时,用户控件必须放在调用者同一目录下,也可以放在View/Shared中。